{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "98e820d1-5d05-49ef-9495-2756bfeac4f6",
   "metadata": {},
   "source": [
    "# hydrodata.data.minio模块\n",
    "整合minio中的数据读写"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9f0e211e-09a0-4096-8bbe-d9467b302c39",
   "metadata": {
    "tags": []
   },
   "source": [
    "## era5-land数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "8e5817af-aa48-4062-8472-e5da6fab4c1d",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from hydrodata.data.minio import Era5L\n",
    "import numpy as np\n",
    "import geopandas as gpd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b54aaa82-02a9-4733-a2ff-8988248954b9",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "era5 = Era5L()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb165a14-280f-4776-985e-d6d1c8c7770c",
   "metadata": {},
   "source": [
    "### 主要通过catalog和reader两个属性对象进行数据操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c7536fd9-baba-41a0-89df-c9db68e2e721",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.1 x 0.1; Native resolution is 9 km.\n"
     ]
    }
   ],
   "source": [
    "# dir(era5.catalog), dir(era5.reader)\n",
    "\n",
    "print(era5.catalog.spatial_resolution)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dd64f6dd-0920-43c3-bd58-848a1c68466d",
   "metadata": {},
   "source": [
    "### 获取流域范围数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "12a7a73b-ab3b-4194-bd3d-930c9d9f5f6c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>MULTIPOLYGON (((122.44241 39.80139, 122.39342 ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id                                           geometry\n",
       "0   0  MULTIPOLYGON (((122.44241 39.80139, 122.39342 ..."
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "aoi = gpd.read_file('basin.geojson')\n",
    "aoi"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2d5ff2f3-11d4-4b2e-b256-f7a7f78b2da2",
   "metadata": {},
   "source": [
    "### 利用`catalog`获取era5数据的数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "da41e809-7539-4ae0-b737-6b350fb741ad",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'wis': {'start_time': numpy.datetime64('2015-07-01T00:00:00'),\n",
       "  'end_time': numpy.datetime64('2021-12-31T23:00:00'),\n",
       "  'bbox': [115, 38, 136, 54]}}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "era5.catalog.datasets"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2427fd52-386c-4720-8930-a3bf56161f5c",
   "metadata": {},
   "source": [
    "- 利用`catalog.search()`方法搜索era5数据的数据集，可指定时间范围和空间范围"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "1785b4eb-94bc-4206-a642-3c33c2565d0e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>dataset</th>\n",
       "      <th>start_time</th>\n",
       "      <th>end_time</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>era5-land</td>\n",
       "      <td>wis</td>\n",
       "      <td>2015-07-01T00:00:00</td>\n",
       "      <td>2021-12-31T23:00:00</td>\n",
       "      <td>POLYGON ((122.39342 39.81027, 122.31744 39.833...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          id dataset           start_time             end_time  \\\n",
       "0  era5-land     wis  2015-07-01T00:00:00  2021-12-31T23:00:00   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((122.39342 39.81027, 122.31744 39.833...  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e = era5.catalog.search(aoi=aoi)\n",
    "e"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "63311fcb-6212-477c-849b-a6d0340e1205",
   "metadata": {
    "tags": []
   },
   "source": [
    "### 利用`reader`读取era5数据"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12caf0f0-7964-4d04-80b3-655a77e67901",
   "metadata": {},
   "source": [
    "- 通过指定四至范围读取era5数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "7ae6e3a2-7155-41b7-9d93-378942a386bd",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/zhujianfeng/.conda/envs/dev-env/lib/python3.10/site-packages/xarray/backends/plugins.py:80: RuntimeWarning: Engine 'cfgrib' loading failed:\n",
      "Cannot find the ecCodes library\n",
      "  warnings.warn(f\"Engine {name!r} loading failed:\\n{ex}\", RuntimeWarning)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
       "Dimensions:  (time: 720, lon: 21, lat: 11)\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.0 39.1 39.2 39.3 39.4 ... 39.6 39.7 39.8 39.9 40.0\n",
       "  * lon      (lon) float32 121.0 121.1 121.2 121.3 ... 122.7 122.8 122.9 123.0\n",
       "  * time     (time) datetime64[ns] 2021-06-01 ... 2021-06-30T23:00:00\n",
       "Data variables:\n",
       "    tp       (time, lon, lat) float32 dask.array&lt;chunksize=(24, 21, 11), meta=np.ndarray&gt;\n",
       "Attributes:\n",
       "    Conventions:  CF-1.6\n",
       "    history:      2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmw...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-01af5edd-8506-47d5-a836-aad979483985' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-01af5edd-8506-47d5-a836-aad979483985' class='xr-section-summary'  title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 720</li><li><span class='xr-has-index'>lon</span>: 21</li><li><span class='xr-has-index'>lat</span>: 11</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-ab56e24a-f3e4-4a54-882f-94de6344cdb7' class='xr-section-summary-in' type='checkbox'  checked><label for='section-ab56e24a-f3e4-4a54-882f-94de6344cdb7' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>39.0 39.1 39.2 ... 39.8 39.9 40.0</div><input id='attrs-34143f9d-94a1-4954-8b83-072a94cab7cb' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-34143f9d-94a1-4954-8b83-072a94cab7cb' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-26a54447-df72-4df4-be4a-17fb125ab1ff' class='xr-var-data-in' type='checkbox'><label for='data-26a54447-df72-4df4-be4a-17fb125ab1ff' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39. , 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40. ],\n",
       "      dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>121.0 121.1 121.2 ... 122.9 123.0</div><input id='attrs-217ef195-e01c-48b8-b944-24d8f6e30864' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-217ef195-e01c-48b8-b944-24d8f6e30864' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ac1af0e7-f77b-43e4-b963-189fa2955855' class='xr-var-data-in' type='checkbox'><label for='data-ac1af0e7-f77b-43e4-b963-189fa2955855' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([121. , 121.1, 121.2, 121.3, 121.4, 121.5, 121.6, 121.7, 121.8, 121.9,\n",
       "       122. , 122.1, 122.2, 122.3, 122.4, 122.5, 122.6, 122.7, 122.8, 122.9,\n",
       "       123. ], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2021-06-01 ... 2021-06-30T23:00:00</div><input id='attrs-5dcdee5e-720a-4d4c-9ce0-d78d6a71713a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5dcdee5e-720a-4d4c-9ce0-d78d6a71713a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-418e398c-63b0-43f7-ae60-046f430e3f46' class='xr-var-data-in' type='checkbox'><label for='data-418e398c-63b0-43f7-ae60-046f430e3f46' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2021-06-01T00:00:00.000000000&#x27;, &#x27;2021-06-01T01:00:00.000000000&#x27;,\n",
       "       &#x27;2021-06-01T02:00:00.000000000&#x27;, ..., &#x27;2021-06-30T21:00:00.000000000&#x27;,\n",
       "       &#x27;2021-06-30T22:00:00.000000000&#x27;, &#x27;2021-06-30T23:00:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-a8612540-0a62-48cf-b909-a0270c11548b' class='xr-section-summary-in' type='checkbox'  checked><label for='section-a8612540-0a62-48cf-b909-a0270c11548b' class='xr-section-summary' >Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>tp</span></div><div class='xr-var-dims'>(time, lon, lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(24, 21, 11), meta=np.ndarray&gt;</div><input id='attrs-5f4fd53b-827a-413b-9626-f7a6c9864e55' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5f4fd53b-827a-413b-9626-f7a6c9864e55' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-86fdcae1-1c9a-4918-9c1a-8fd87d6f895e' class='xr-var-data-in' type='checkbox'><label for='data-86fdcae1-1c9a-4918-9c1a-8fd87d6f895e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Total precipitation</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 649.69 kiB </td>\n",
       "                        <td> 21.66 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (720, 21, 11) </td>\n",
       "                        <td> (24, 21, 11) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 30 chunks in 6 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float32 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"158\" height=\"151\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"10\" y1=\"31\" x2=\"80\" y2=\"101\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"31\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"33\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"17\" y2=\"38\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"19\" y2=\"40\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"45\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"26\" y2=\"47\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"31\" y2=\"52\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"35\" y2=\"57\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"38\" y2=\"59\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"42\" y2=\"64\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"45\" y2=\"66\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"50\" y2=\"71\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"52\" y2=\"73\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"57\" y2=\"78\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"61\" y2=\"82\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"64\" y2=\"85\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"68\" y2=\"90\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"71\" y2=\"92\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"75\" y2=\"97\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"101\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 80.58823529411765,70.58823529411765 80.58823529411765,101.81028006774253 10.0,31.22204477362488\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"37\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"39\" y2=\"2\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"44\" y2=\"7\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"46\" y2=\"9\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"51\" y2=\"14\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"54\" y2=\"16\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"58\" y2=\"21\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"63\" y2=\"25\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"65\" y2=\"28\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"70\" y2=\"32\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"72\" y2=\"35\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"77\" y2=\"40\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"79\" y2=\"42\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"84\" y2=\"47\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"89\" y2=\"51\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"91\" y2=\"54\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"96\" y2=\"58\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"98\" y2=\"61\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"103\" y2=\"65\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"108\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"37\" y1=\"0\" x2=\"108\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 37.55553293931477,0.0 108.14376823343243,70.58823529411765 80.58823529411765,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"108\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"80\" y1=\"101\" x2=\"108\" y2=\"101\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"101\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"108\" y1=\"70\" x2=\"108\" y2=\"101\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"80.58823529411765,70.58823529411765 108.14376823343243,70.58823529411765 108.14376823343243,101.81028006774253 80.58823529411765,101.81028006774253\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"94.366002\" y=\"121.810280\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >11</text>\n",
       "  <text x=\"128.143768\" y=\"86.199258\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,128.143768,86.199258)\">21</text>\n",
       "  <text x=\"35.294118\" y=\"86.516162\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,35.294118,86.516162)\">720</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-ee77947c-2e31-4183-b81c-f0bfa2856cef' class='xr-section-summary-in' type='checkbox'  ><label for='section-ee77947c-2e31-4183-b81c-f0bfa2856cef' class='xr-section-summary' >Indexes: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-4affa3f6-e142-4836-a8e8-e68e4503b251' class='xr-index-data-in' type='checkbox'/><label for='index-4affa3f6-e142-4836-a8e8-e68e4503b251' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([              39.0, 39.099998474121094,  39.20000076293945,\n",
       "        39.29999923706055, 39.400001525878906,               39.5,\n",
       "       39.599998474121094,  39.70000076293945,  39.79999923706055,\n",
       "       39.900001525878906,               40.0],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-b196fa72-a6b4-4abb-a126-8075a4b02dc5' class='xr-index-data-in' type='checkbox'/><label for='index-b196fa72-a6b4-4abb-a126-8075a4b02dc5' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([             121.0,  121.0999984741211, 121.19999694824219,\n",
       "       121.30000305175781,  121.4000015258789,              121.5,\n",
       "        121.5999984741211, 121.69999694824219, 121.80000305175781,\n",
       "        121.9000015258789,              122.0,  122.0999984741211,\n",
       "       122.19999694824219, 122.30000305175781,  122.4000015258789,\n",
       "                    122.5,  122.5999984741211, 122.69999694824219,\n",
       "       122.80000305175781,  122.9000015258789,              123.0],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-be28a45b-ac94-4d4f-9694-5882a3112c81' class='xr-index-data-in' type='checkbox'/><label for='index-be28a45b-ac94-4d4f-9694-5882a3112c81' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2021-06-01 00:00:00&#x27;, &#x27;2021-06-01 01:00:00&#x27;,\n",
       "               &#x27;2021-06-01 02:00:00&#x27;, &#x27;2021-06-01 03:00:00&#x27;,\n",
       "               &#x27;2021-06-01 04:00:00&#x27;, &#x27;2021-06-01 05:00:00&#x27;,\n",
       "               &#x27;2021-06-01 06:00:00&#x27;, &#x27;2021-06-01 07:00:00&#x27;,\n",
       "               &#x27;2021-06-01 08:00:00&#x27;, &#x27;2021-06-01 09:00:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2021-06-30 14:00:00&#x27;, &#x27;2021-06-30 15:00:00&#x27;,\n",
       "               &#x27;2021-06-30 16:00:00&#x27;, &#x27;2021-06-30 17:00:00&#x27;,\n",
       "               &#x27;2021-06-30 18:00:00&#x27;, &#x27;2021-06-30 19:00:00&#x27;,\n",
       "               &#x27;2021-06-30 20:00:00&#x27;, &#x27;2021-06-30 21:00:00&#x27;,\n",
       "               &#x27;2021-06-30 22:00:00&#x27;, &#x27;2021-06-30 23:00:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, length=720, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-0afcfcd0-dd87-4b1f-91d1-396d3fbd460d' class='xr-section-summary-in' type='checkbox'  checked><label for='section-0afcfcd0-dd87-4b1f-91d1-396d3fbd460d' class='xr-section-summary' >Attributes: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Conventions :</span></dt><dd>CF-1.6</dd><dt><span>history :</span></dt><dd>2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmwf/mars-client/bin/grib_to_netcdf.bin -S param -o /cache/data3/adaptor.mars.internal-1658405615.0302866-15351-15-83c8a3b2-abf2-46ba-a14c-ec308c207ff8.nc /cache/tmp/83c8a3b2-abf2-46ba-a14c-ec308c207ff8-adaptor.mars.internal-1658405415.5680676-15351-27-tmp.grib</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset>\n",
       "Dimensions:  (time: 720, lon: 21, lat: 11)\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.0 39.1 39.2 39.3 39.4 ... 39.6 39.7 39.8 39.9 40.0\n",
       "  * lon      (lon) float32 121.0 121.1 121.2 121.3 ... 122.7 122.8 122.9 123.0\n",
       "  * time     (time) datetime64[ns] 2021-06-01 ... 2021-06-30T23:00:00\n",
       "Data variables:\n",
       "    tp       (time, lon, lat) float32 dask.array<chunksize=(24, 21, 11), meta=np.ndarray>\n",
       "Attributes:\n",
       "    Conventions:  CF-1.6\n",
       "    history:      2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmw..."
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bbox=(121,39,123,40)\n",
    "start_time=np.datetime64(\"2021-06-01T00:00:00.000000000\")\n",
    "end_time=np.datetime64(\"2021-06-30T23:00:00.000000000\")\n",
    "\n",
    "e1 = era5.reader.open_dataset(data_variables=['Total precipitation'], start_time=start_time, end_time=end_time, dataset='wis', bbox=bbox)\n",
    "e1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7b57be1-a681-40ac-bae8-bfbfc87547e4",
   "metadata": {},
   "source": [
    "- 通过矢量数据文件读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f5bf5f28-88d9-4ac9-8977-0e5f11b4977a",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
       "Dimensions:  (time: 720, lon: 6, lat: 5)\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.8 39.9 40.0 40.1 40.2\n",
       "  * lon      (lon) float32 122.3 122.4 122.5 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2021-06-01 ... 2021-06-30T23:00:00\n",
       "Data variables:\n",
       "    tp       (time, lon, lat) float32 dask.array&lt;chunksize=(24, 6, 5), meta=np.ndarray&gt;\n",
       "Attributes:\n",
       "    Conventions:  CF-1.6\n",
       "    history:      2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmw...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-08565eee-d87c-483c-a1e9-ba28b31213ec' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-08565eee-d87c-483c-a1e9-ba28b31213ec' class='xr-section-summary'  title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 720</li><li><span class='xr-has-index'>lon</span>: 6</li><li><span class='xr-has-index'>lat</span>: 5</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-6ac5d8e1-7d1f-41c4-a3e1-3592f5a3ed2d' class='xr-section-summary-in' type='checkbox'  checked><label for='section-6ac5d8e1-7d1f-41c4-a3e1-3592f5a3ed2d' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>39.8 39.9 40.0 40.1 40.2</div><input id='attrs-f5c27c04-d0f6-4ac6-b381-f125bb270800' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f5c27c04-d0f6-4ac6-b381-f125bb270800' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a3a38897-185e-4298-b230-9eef23dfd308' class='xr-var-data-in' type='checkbox'><label for='data-a3a38897-185e-4298-b230-9eef23dfd308' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.8, 39.9, 40. , 40.1, 40.2], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>122.3 122.4 122.5 122.6 122.7 122.8</div><input id='attrs-ce4b6b57-e58e-4bd2-80fe-edc9efb1248d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-ce4b6b57-e58e-4bd2-80fe-edc9efb1248d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-85fd6a87-0c05-4835-983e-b7983a4ef5ab' class='xr-var-data-in' type='checkbox'><label for='data-85fd6a87-0c05-4835-983e-b7983a4ef5ab' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([122.3, 122.4, 122.5, 122.6, 122.7, 122.8], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2021-06-01 ... 2021-06-30T23:00:00</div><input id='attrs-eeb68f68-2034-4731-abf5-eb15db688cad' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-eeb68f68-2034-4731-abf5-eb15db688cad' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3ff16e60-a947-4511-8e97-1f3bdd1ffa0a' class='xr-var-data-in' type='checkbox'><label for='data-3ff16e60-a947-4511-8e97-1f3bdd1ffa0a' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2021-06-01T00:00:00.000000000&#x27;, &#x27;2021-06-01T01:00:00.000000000&#x27;,\n",
       "       &#x27;2021-06-01T02:00:00.000000000&#x27;, ..., &#x27;2021-06-30T21:00:00.000000000&#x27;,\n",
       "       &#x27;2021-06-30T22:00:00.000000000&#x27;, &#x27;2021-06-30T23:00:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-006691f5-2c96-4792-a148-383140de6f6e' class='xr-section-summary-in' type='checkbox'  checked><label for='section-006691f5-2c96-4792-a148-383140de6f6e' class='xr-section-summary' >Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>tp</span></div><div class='xr-var-dims'>(time, lon, lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(24, 6, 5), meta=np.ndarray&gt;</div><input id='attrs-b3746d65-78fc-478d-80ba-f7f51d208764' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b3746d65-78fc-478d-80ba-f7f51d208764' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8df9a9fb-095c-4275-8a0c-b2213bd0e373' class='xr-var-data-in' type='checkbox'><label for='data-8df9a9fb-095c-4275-8a0c-b2213bd0e373' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Total precipitation</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 84.38 kiB </td>\n",
       "                        <td> 2.81 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (720, 6, 5) </td>\n",
       "                        <td> (24, 6, 5) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 30 chunks in 6 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float32 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"156\" height=\"146\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"10\" y1=\"25\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"27\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"17\" y2=\"32\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"19\" y2=\"34\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"39\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"26\" y2=\"41\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"31\" y2=\"46\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"35\" y2=\"51\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"38\" y2=\"53\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"42\" y2=\"58\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"45\" y2=\"60\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"50\" y2=\"65\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"52\" y2=\"67\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"57\" y2=\"72\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"61\" y2=\"77\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"64\" y2=\"79\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"68\" y2=\"84\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"71\" y2=\"86\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"75\" y2=\"91\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 80.58823529411765,70.58823529411765 80.58823529411765,96.00085180870013 10.0,25.412616514582485\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"37\" y2=\"2\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"42\" y2=\"7\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"44\" y2=\"9\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"49\" y2=\"14\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"51\" y2=\"16\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"56\" y2=\"21\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"61\" y2=\"25\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"63\" y2=\"28\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"68\" y2=\"32\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"70\" y2=\"35\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"75\" y2=\"40\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"77\" y2=\"42\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"82\" y2=\"47\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"87\" y2=\"51\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"89\" y2=\"54\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"94\" y2=\"58\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"96\" y2=\"61\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"101\" y2=\"65\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"35\" y1=\"0\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 35.41261651458248,0.0 106.00085180870013,70.58823529411765 80.58823529411765,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"80\" y1=\"96\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"106\" y1=\"70\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"80.58823529411765,70.58823529411765 106.00085180870013,70.58823529411765 106.00085180870013,96.00085180870013 80.58823529411765,96.00085180870013\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"93.294544\" y=\"116.000852\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >5</text>\n",
       "  <text x=\"126.000852\" y=\"83.294544\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,126.000852,83.294544)\">6</text>\n",
       "  <text x=\"35.294118\" y=\"80.706734\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,35.294118,80.706734)\">720</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-480b8d46-c311-494f-84ca-f721df03f97b' class='xr-section-summary-in' type='checkbox'  ><label for='section-480b8d46-c311-494f-84ca-f721df03f97b' class='xr-section-summary' >Indexes: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-68990c94-4842-4860-b6d5-d0d18e1467ac' class='xr-index-data-in' type='checkbox'/><label for='index-68990c94-4842-4860-b6d5-d0d18e1467ac' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([ 39.79999923706055, 39.900001525878906,               40.0,\n",
       "       40.099998474121094,  40.20000076293945],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-e8c79cd2-cfb3-4a83-b396-55ef5f868eb2' class='xr-index-data-in' type='checkbox'/><label for='index-e8c79cd2-cfb3-4a83-b396-55ef5f868eb2' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([122.30000305175781,  122.4000015258789,              122.5,\n",
       "        122.5999984741211, 122.69999694824219, 122.80000305175781],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-7a2e1d74-8831-4a50-b719-617114cfb21b' class='xr-index-data-in' type='checkbox'/><label for='index-7a2e1d74-8831-4a50-b719-617114cfb21b' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2021-06-01 00:00:00&#x27;, &#x27;2021-06-01 01:00:00&#x27;,\n",
       "               &#x27;2021-06-01 02:00:00&#x27;, &#x27;2021-06-01 03:00:00&#x27;,\n",
       "               &#x27;2021-06-01 04:00:00&#x27;, &#x27;2021-06-01 05:00:00&#x27;,\n",
       "               &#x27;2021-06-01 06:00:00&#x27;, &#x27;2021-06-01 07:00:00&#x27;,\n",
       "               &#x27;2021-06-01 08:00:00&#x27;, &#x27;2021-06-01 09:00:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2021-06-30 14:00:00&#x27;, &#x27;2021-06-30 15:00:00&#x27;,\n",
       "               &#x27;2021-06-30 16:00:00&#x27;, &#x27;2021-06-30 17:00:00&#x27;,\n",
       "               &#x27;2021-06-30 18:00:00&#x27;, &#x27;2021-06-30 19:00:00&#x27;,\n",
       "               &#x27;2021-06-30 20:00:00&#x27;, &#x27;2021-06-30 21:00:00&#x27;,\n",
       "               &#x27;2021-06-30 22:00:00&#x27;, &#x27;2021-06-30 23:00:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, length=720, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-2ecfc20e-a000-45b8-8ddd-e864473049f1' class='xr-section-summary-in' type='checkbox'  checked><label for='section-2ecfc20e-a000-45b8-8ddd-e864473049f1' class='xr-section-summary' >Attributes: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Conventions :</span></dt><dd>CF-1.6</dd><dt><span>history :</span></dt><dd>2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmwf/mars-client/bin/grib_to_netcdf.bin -S param -o /cache/data3/adaptor.mars.internal-1658405615.0302866-15351-15-83c8a3b2-abf2-46ba-a14c-ec308c207ff8.nc /cache/tmp/83c8a3b2-abf2-46ba-a14c-ec308c207ff8-adaptor.mars.internal-1658405415.5680676-15351-27-tmp.grib</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset>\n",
       "Dimensions:  (time: 720, lon: 6, lat: 5)\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.8 39.9 40.0 40.1 40.2\n",
       "  * lon      (lon) float32 122.3 122.4 122.5 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2021-06-01 ... 2021-06-30T23:00:00\n",
       "Data variables:\n",
       "    tp       (time, lon, lat) float32 dask.array<chunksize=(24, 6, 5), meta=np.ndarray>\n",
       "Attributes:\n",
       "    Conventions:  CF-1.6\n",
       "    history:      2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmw..."
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shp = 'basin.geojson'\n",
    "e2 = era5.reader.from_shp(data_variables=['Total precipitation'], start_time=start_time, end_time=end_time, dataset='wis', shp=shp)\n",
    "e2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ba298b4-a048-4962-9f9e-aac13c8be920",
   "metadata": {},
   "source": [
    "- 通过已有aoi对象读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b244154b-acd6-49b9-aa3e-9dbfcbc59a4e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
       "Dimensions:  (time: 720, lon: 6, lat: 5)\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.8 39.9 40.0 40.1 40.2\n",
       "  * lon      (lon) float32 122.3 122.4 122.5 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2021-06-01 ... 2021-06-30T23:00:00\n",
       "Data variables:\n",
       "    tp       (time, lon, lat) float32 dask.array&lt;chunksize=(24, 6, 5), meta=np.ndarray&gt;\n",
       "Attributes:\n",
       "    Conventions:  CF-1.6\n",
       "    history:      2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmw...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-ecb3b88e-b9eb-424c-aa38-d9597ef97264' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-ecb3b88e-b9eb-424c-aa38-d9597ef97264' class='xr-section-summary'  title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 720</li><li><span class='xr-has-index'>lon</span>: 6</li><li><span class='xr-has-index'>lat</span>: 5</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-62a500cd-a056-4104-b043-77792c8cdf62' class='xr-section-summary-in' type='checkbox'  checked><label for='section-62a500cd-a056-4104-b043-77792c8cdf62' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>39.8 39.9 40.0 40.1 40.2</div><input id='attrs-3370a253-98ca-4aee-85f3-64af79daaf93' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3370a253-98ca-4aee-85f3-64af79daaf93' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f4bd7b39-0a47-448b-98c8-2dd8184bd475' class='xr-var-data-in' type='checkbox'><label for='data-f4bd7b39-0a47-448b-98c8-2dd8184bd475' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.8, 39.9, 40. , 40.1, 40.2], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>122.3 122.4 122.5 122.6 122.7 122.8</div><input id='attrs-f6f0aab8-f554-4941-a2c0-c40b4b0a3bbb' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f6f0aab8-f554-4941-a2c0-c40b4b0a3bbb' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7baa7aa8-046d-41bc-8489-0df4ed10a089' class='xr-var-data-in' type='checkbox'><label for='data-7baa7aa8-046d-41bc-8489-0df4ed10a089' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([122.3, 122.4, 122.5, 122.6, 122.7, 122.8], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2021-06-01 ... 2021-06-30T23:00:00</div><input id='attrs-6af97d82-cd45-4b79-8341-4195204a8e94' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6af97d82-cd45-4b79-8341-4195204a8e94' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e3bada4b-a3d1-4d7a-8dd9-de5d116920fd' class='xr-var-data-in' type='checkbox'><label for='data-e3bada4b-a3d1-4d7a-8dd9-de5d116920fd' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2021-06-01T00:00:00.000000000&#x27;, &#x27;2021-06-01T01:00:00.000000000&#x27;,\n",
       "       &#x27;2021-06-01T02:00:00.000000000&#x27;, ..., &#x27;2021-06-30T21:00:00.000000000&#x27;,\n",
       "       &#x27;2021-06-30T22:00:00.000000000&#x27;, &#x27;2021-06-30T23:00:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-0edafcb4-7293-4336-ae30-72217fd0edfe' class='xr-section-summary-in' type='checkbox'  checked><label for='section-0edafcb4-7293-4336-ae30-72217fd0edfe' class='xr-section-summary' >Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>tp</span></div><div class='xr-var-dims'>(time, lon, lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(24, 6, 5), meta=np.ndarray&gt;</div><input id='attrs-5270999a-bd58-463f-9269-d5e6be0b8718' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5270999a-bd58-463f-9269-d5e6be0b8718' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-01d7cc5e-c19c-4004-b916-9bb995daa712' class='xr-var-data-in' type='checkbox'><label for='data-01d7cc5e-c19c-4004-b916-9bb995daa712' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>Total precipitation</dd><dt><span>units :</span></dt><dd>m</dd></dl></div><div class='xr-var-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 84.38 kiB </td>\n",
       "                        <td> 2.81 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (720, 6, 5) </td>\n",
       "                        <td> (24, 6, 5) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 30 chunks in 6 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float32 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"156\" height=\"146\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"10\" y1=\"25\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"27\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"17\" y2=\"32\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"19\" y2=\"34\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"39\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"26\" y2=\"41\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"31\" y2=\"46\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"35\" y2=\"51\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"38\" y2=\"53\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"42\" y2=\"58\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"45\" y2=\"60\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"50\" y2=\"65\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"52\" y2=\"67\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"57\" y2=\"72\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"61\" y2=\"77\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"64\" y2=\"79\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"68\" y2=\"84\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"71\" y2=\"86\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"75\" y2=\"91\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 80.58823529411765,70.58823529411765 80.58823529411765,96.00085180870013 10.0,25.412616514582485\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"37\" y2=\"2\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"42\" y2=\"7\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"44\" y2=\"9\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"49\" y2=\"14\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"51\" y2=\"16\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"56\" y2=\"21\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"61\" y2=\"25\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"63\" y2=\"28\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"68\" y2=\"32\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"70\" y2=\"35\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"75\" y2=\"40\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"77\" y2=\"42\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"82\" y2=\"47\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"87\" y2=\"51\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"89\" y2=\"54\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"94\" y2=\"58\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"96\" y2=\"61\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"101\" y2=\"65\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"35\" y1=\"0\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 35.41261651458248,0.0 106.00085180870013,70.58823529411765 80.58823529411765,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"80\" y1=\"96\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"106\" y1=\"70\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"80.58823529411765,70.58823529411765 106.00085180870013,70.58823529411765 106.00085180870013,96.00085180870013 80.58823529411765,96.00085180870013\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"93.294544\" y=\"116.000852\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >5</text>\n",
       "  <text x=\"126.000852\" y=\"83.294544\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,126.000852,83.294544)\">6</text>\n",
       "  <text x=\"35.294118\" y=\"80.706734\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,35.294118,80.706734)\">720</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-3a229787-51e8-482b-bd49-67390c041288' class='xr-section-summary-in' type='checkbox'  ><label for='section-3a229787-51e8-482b-bd49-67390c041288' class='xr-section-summary' >Indexes: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-0544e511-1ce5-4eb3-a397-5e28fffbf1a4' class='xr-index-data-in' type='checkbox'/><label for='index-0544e511-1ce5-4eb3-a397-5e28fffbf1a4' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([ 39.79999923706055, 39.900001525878906,               40.0,\n",
       "       40.099998474121094,  40.20000076293945],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-df76ea2a-46eb-432f-a769-dde8f53b187d' class='xr-index-data-in' type='checkbox'/><label for='index-df76ea2a-46eb-432f-a769-dde8f53b187d' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([122.30000305175781,  122.4000015258789,              122.5,\n",
       "        122.5999984741211, 122.69999694824219, 122.80000305175781],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-88c24685-622b-4076-bbf6-78028a772ff7' class='xr-index-data-in' type='checkbox'/><label for='index-88c24685-622b-4076-bbf6-78028a772ff7' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2021-06-01 00:00:00&#x27;, &#x27;2021-06-01 01:00:00&#x27;,\n",
       "               &#x27;2021-06-01 02:00:00&#x27;, &#x27;2021-06-01 03:00:00&#x27;,\n",
       "               &#x27;2021-06-01 04:00:00&#x27;, &#x27;2021-06-01 05:00:00&#x27;,\n",
       "               &#x27;2021-06-01 06:00:00&#x27;, &#x27;2021-06-01 07:00:00&#x27;,\n",
       "               &#x27;2021-06-01 08:00:00&#x27;, &#x27;2021-06-01 09:00:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2021-06-30 14:00:00&#x27;, &#x27;2021-06-30 15:00:00&#x27;,\n",
       "               &#x27;2021-06-30 16:00:00&#x27;, &#x27;2021-06-30 17:00:00&#x27;,\n",
       "               &#x27;2021-06-30 18:00:00&#x27;, &#x27;2021-06-30 19:00:00&#x27;,\n",
       "               &#x27;2021-06-30 20:00:00&#x27;, &#x27;2021-06-30 21:00:00&#x27;,\n",
       "               &#x27;2021-06-30 22:00:00&#x27;, &#x27;2021-06-30 23:00:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, length=720, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-1784b82d-a3a3-4cef-9719-65052c2f97dc' class='xr-section-summary-in' type='checkbox'  checked><label for='section-1784b82d-a3a3-4cef-9719-65052c2f97dc' class='xr-section-summary' >Attributes: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>Conventions :</span></dt><dd>CF-1.6</dd><dt><span>history :</span></dt><dd>2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmwf/mars-client/bin/grib_to_netcdf.bin -S param -o /cache/data3/adaptor.mars.internal-1658405615.0302866-15351-15-83c8a3b2-abf2-46ba-a14c-ec308c207ff8.nc /cache/tmp/83c8a3b2-abf2-46ba-a14c-ec308c207ff8-adaptor.mars.internal-1658405415.5680676-15351-27-tmp.grib</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset>\n",
       "Dimensions:  (time: 720, lon: 6, lat: 5)\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.8 39.9 40.0 40.1 40.2\n",
       "  * lon      (lon) float32 122.3 122.4 122.5 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2021-06-01 ... 2021-06-30T23:00:00\n",
       "Data variables:\n",
       "    tp       (time, lon, lat) float32 dask.array<chunksize=(24, 6, 5), meta=np.ndarray>\n",
       "Attributes:\n",
       "    Conventions:  CF-1.6\n",
       "    history:      2022-07-21 12:13:40 GMT by grib_to_netcdf-2.25.1: /opt/ecmw..."
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e3 = era5.reader.from_aoi(data_variables=['Total precipitation'], start_time=start_time, end_time=end_time, dataset='wis', aoi=aoi)\n",
    "e3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1d8a4489-99c6-42f5-8e39-a4a27b184160",
   "metadata": {
    "tags": []
   },
   "source": [
    "## gpm数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "df9f0651-b566-4ab5-a581-9b0b813927a9",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from hydrodata.data.minio import GPM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "a44c3051-5765-4ce3-b200-23d8bc26c313",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "gpm = GPM()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96c1c00e-dc67-4107-901f-7866abf683a5",
   "metadata": {},
   "source": [
    "### 主要通过catalog和reader两个属性对象进行数据操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b0fccab1-3df2-4466-b8a4-1625dcd1f7cd",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "half-hourly; 1 day\n"
     ]
    }
   ],
   "source": [
    "# dir(gpm.catalog), dir(gpm.reader)\n",
    "\n",
    "print(gpm.catalog.temporal_resolution)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc00091b-0515-45c3-b0e7-45611828378e",
   "metadata": {},
   "source": [
    "### 利用`catalog`获取gpm数据的数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "277aeccc-d31d-4ac7-a506-6a54da8ae344",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'wis': [{'time_resolution': '30 minutes',\n",
       "   'start_time': numpy.datetime64('2016-01-01T00:00:00.000000000'),\n",
       "   'end_time': numpy.datetime64('2023-10-11T08:30:00.000000000'),\n",
       "   'bbox': [73, 3, 136, 54]},\n",
       "  {'time_resolution': '1 day',\n",
       "   'start_time': numpy.datetime64('2000-06-01T00:00:00.000000000'),\n",
       "   'end_time': numpy.datetime64('2023-09-26T23:59:59.000000000'),\n",
       "   'bbox': [73, 3, 136, 54]}],\n",
       " 'camels': [{'time_resolution': '30 minutes',\n",
       "   'start_time': numpy.datetime64('2022-01-01T00:00:00.000000000'),\n",
       "   'end_time': numpy.datetime64('2023-08-31T23:30:00.000000000'),\n",
       "   'bbox': [-125, 25, -66, 50]},\n",
       "  {'time_resolution': '1 day',\n",
       "   'start_time': numpy.datetime64('2000-06-01T00:00:00.000000000'),\n",
       "   'end_time': numpy.datetime64('2014-12-31T23:59:59.000000000'),\n",
       "   'bbox': [-125, 25, -66, 50]}]}"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gpm.catalog.datasets"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cca1fd34-fdba-4c70-9aec-b1de80b66a06",
   "metadata": {},
   "source": [
    "- 利用`catalog.search()`方法搜索gpm数据的数据集，可指定时间范围和空间范围"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "91c46abb-6131-4d03-9884-106a7a97d8d1",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>dataset</th>\n",
       "      <th>time_resolution</th>\n",
       "      <th>start_time</th>\n",
       "      <th>end_time</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>gpm-imerg-early</td>\n",
       "      <td>wis</td>\n",
       "      <td>30 minutes</td>\n",
       "      <td>2016-01-01T00:00:00.000000000</td>\n",
       "      <td>2023-10-11T08:30:00.000000000</td>\n",
       "      <td>POLYGON ((122.39342 39.81027, 122.31744 39.833...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>gpm-imerg-early</td>\n",
       "      <td>wis</td>\n",
       "      <td>1 day</td>\n",
       "      <td>2000-06-01T00:00:00.000000000</td>\n",
       "      <td>2023-09-26T23:59:59.000000000</td>\n",
       "      <td>POLYGON ((122.39342 39.81027, 122.31744 39.833...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                id dataset time_resolution                     start_time  \\\n",
       "0  gpm-imerg-early     wis      30 minutes  2016-01-01T00:00:00.000000000   \n",
       "0  gpm-imerg-early     wis           1 day  2000-06-01T00:00:00.000000000   \n",
       "\n",
       "                        end_time  \\\n",
       "0  2023-10-11T08:30:00.000000000   \n",
       "0  2023-09-26T23:59:59.000000000   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((122.39342 39.81027, 122.31744 39.833...  \n",
       "0  POLYGON ((122.39342 39.81027, 122.31744 39.833...  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "g = gpm.catalog.search(aoi=aoi)\n",
    "g"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "85281384-c602-4979-ad8e-106cfa838747",
   "metadata": {
    "tags": []
   },
   "source": [
    "### 利用`reader`读取gpm数据"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "51b11fab-3986-4e39-b8a9-7127d6abe73e",
   "metadata": {},
   "source": [
    "- 通过指定四至范围读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "ec9ff652-aca9-4cfa-9cd5-505d8f1fb57c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;precipitationCal&#x27; (time: 1440, lon: 20, lat: 10)&gt;\n",
       "dask.array&lt;getitem, shape=(1440, 20, 10), dtype=float32, chunksize=(48, 20, 10), chunktype=numpy.ndarray&gt;\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.05 39.15 39.25 39.35 ... 39.65 39.75 39.85 39.95\n",
       "  * lon      (lon) float32 121.1 121.2 121.2 121.3 ... 122.7 122.8 122.8 122.9\n",
       "  * time     (time) datetime64[ns] 2023-06-01 ... 2023-06-30T23:30:00\n",
       "Attributes:\n",
       "    CodeMissingValue:  -9999.9\n",
       "    DimensionNames:    time,lon,lat\n",
       "    Units:             mm/hr\n",
       "    units:             mm/hr</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'precipitationCal'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 1440</li><li><span class='xr-has-index'>lon</span>: 20</li><li><span class='xr-has-index'>lat</span>: 10</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-6f1dba9b-45ce-4c98-ad9e-c3fa2b9f1a9a' class='xr-array-in' type='checkbox' checked><label for='section-6f1dba9b-45ce-4c98-ad9e-c3fa2b9f1a9a' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>dask.array&lt;chunksize=(48, 20, 10), meta=np.ndarray&gt;</span></div><div class='xr-array-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 1.10 MiB </td>\n",
       "                        <td> 37.50 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (1440, 20, 10) </td>\n",
       "                        <td> (48, 20, 10) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 30 chunks in 3 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float32 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"156\" height=\"147\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"10\" y1=\"27\" x2=\"80\" y2=\"97\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"27\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"29\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"17\" y2=\"34\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"19\" y2=\"36\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"41\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"26\" y2=\"43\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"31\" y2=\"48\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"35\" y2=\"52\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"38\" y2=\"55\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"42\" y2=\"59\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"45\" y2=\"62\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"50\" y2=\"67\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"52\" y2=\"69\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"57\" y2=\"74\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"61\" y2=\"78\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"64\" y2=\"81\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"68\" y2=\"85\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"71\" y2=\"88\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"75\" y2=\"92\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"97\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 80.58823529411765,70.58823529411765 80.58823529411765,97.64227125728706 10.0,27.054035963169405\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"37\" y2=\"2\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"42\" y2=\"7\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"44\" y2=\"9\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"49\" y2=\"14\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"51\" y2=\"16\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"56\" y2=\"21\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"61\" y2=\"25\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"63\" y2=\"28\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"68\" y2=\"32\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"70\" y2=\"35\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"75\" y2=\"40\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"77\" y2=\"42\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"82\" y2=\"47\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"87\" y2=\"51\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"89\" y2=\"54\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"94\" y2=\"58\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"96\" y2=\"61\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"101\" y2=\"65\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"35\" y1=\"0\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 35.41261651458248,0.0 106.00085180870013,70.58823529411765 80.58823529411765,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"80\" y1=\"97\" x2=\"106\" y2=\"97\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"97\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"106\" y1=\"70\" x2=\"106\" y2=\"97\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"80.58823529411765,70.58823529411765 106.00085180870013,70.58823529411765 106.00085180870013,97.64227125728706 80.58823529411765,97.64227125728706\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"93.294544\" y=\"117.642271\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >10</text>\n",
       "  <text x=\"126.000852\" y=\"84.115253\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,126.000852,84.115253)\">20</text>\n",
       "  <text x=\"35.294118\" y=\"82.348154\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,35.294118,82.348154)\">1440</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></div></li><li class='xr-section-item'><input id='section-da67aecb-92fe-4f29-9449-e0b76c79160a' class='xr-section-summary-in' type='checkbox'  checked><label for='section-da67aecb-92fe-4f29-9449-e0b76c79160a' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>39.05 39.15 39.25 ... 39.85 39.95</div><input id='attrs-89897426-7845-4b7c-bc09-db65ce5ac61b' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-89897426-7845-4b7c-bc09-db65ce5ac61b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1e68b649-19ab-44d4-bbe0-77a96a42bef8' class='xr-var-data-in' type='checkbox'><label for='data-1e68b649-19ab-44d4-bbe0-77a96a42bef8' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>Y</dd><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.05, 39.15, 39.25, 39.35, 39.45, 39.55, 39.65, 39.75, 39.85, 39.95],\n",
       "      dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>121.1 121.2 121.2 ... 122.8 122.9</div><input id='attrs-2dc0dac2-9bdb-481c-90c9-9a625f181595' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-2dc0dac2-9bdb-481c-90c9-9a625f181595' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-82cb3fe1-e546-4438-ad28-4c40819de90d' class='xr-var-data-in' type='checkbox'><label for='data-82cb3fe1-e546-4438-ad28-4c40819de90d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>X</dd><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([121.05, 121.15, 121.25, 121.35, 121.45, 121.55, 121.65, 121.75, 121.85,\n",
       "       121.95, 122.05, 122.15, 122.25, 122.35, 122.45, 122.55, 122.65, 122.75,\n",
       "       122.85, 122.95], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01 ... 2023-06-30T23:30:00</div><input id='attrs-22d6aacf-32db-4039-9653-b9ba705e6a67' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-22d6aacf-32db-4039-9653-b9ba705e6a67' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5589e8ea-530b-4ab2-9cdd-64cacaa20d14' class='xr-var-data-in' type='checkbox'><label for='data-5589e8ea-530b-4ab2-9cdd-64cacaa20d14' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>T</dd><dt><span>standard_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T00:00:00.000000000&#x27;, &#x27;2023-06-01T00:30:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T01:00:00.000000000&#x27;, ..., &#x27;2023-06-30T22:30:00.000000000&#x27;,\n",
       "       &#x27;2023-06-30T23:00:00.000000000&#x27;, &#x27;2023-06-30T23:30:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-cae13d50-4a80-4b4f-830b-ec2900a9c474' class='xr-section-summary-in' type='checkbox'  ><label for='section-cae13d50-4a80-4b4f-830b-ec2900a9c474' class='xr-section-summary' >Indexes: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-11a9631d-5504-4990-96be-89e355231c46' class='xr-index-data-in' type='checkbox'/><label for='index-11a9631d-5504-4990-96be-89e355231c46' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([ 39.04999923706055, 39.150001525878906,              39.25,\n",
       "       39.349998474121094,  39.45000076293945,  39.54999923706055,\n",
       "       39.650001525878906,              39.75, 39.849998474121094,\n",
       "        39.95000076293945],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-6bf2b7e1-b5d8-4a9c-b868-06d5ec7accef' class='xr-index-data-in' type='checkbox'/><label for='index-6bf2b7e1-b5d8-4a9c-b868-06d5ec7accef' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([121.05000305175781,  121.1500015258789,             121.25,\n",
       "        121.3499984741211, 121.44999694824219, 121.55000305175781,\n",
       "        121.6500015258789,             121.75,  121.8499984741211,\n",
       "       121.94999694824219, 122.05000305175781,  122.1500015258789,\n",
       "                   122.25,  122.3499984741211, 122.44999694824219,\n",
       "       122.55000305175781,  122.6500015258789,             122.75,\n",
       "        122.8499984741211, 122.94999694824219],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-34ec9d73-128c-49b6-abef-5f2d34211804' class='xr-index-data-in' type='checkbox'/><label for='index-34ec9d73-128c-49b6-abef-5f2d34211804' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01 00:00:00&#x27;, &#x27;2023-06-01 00:30:00&#x27;,\n",
       "               &#x27;2023-06-01 01:00:00&#x27;, &#x27;2023-06-01 01:30:00&#x27;,\n",
       "               &#x27;2023-06-01 02:00:00&#x27;, &#x27;2023-06-01 02:30:00&#x27;,\n",
       "               &#x27;2023-06-01 03:00:00&#x27;, &#x27;2023-06-01 03:30:00&#x27;,\n",
       "               &#x27;2023-06-01 04:00:00&#x27;, &#x27;2023-06-01 04:30:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2023-06-30 19:00:00&#x27;, &#x27;2023-06-30 19:30:00&#x27;,\n",
       "               &#x27;2023-06-30 20:00:00&#x27;, &#x27;2023-06-30 20:30:00&#x27;,\n",
       "               &#x27;2023-06-30 21:00:00&#x27;, &#x27;2023-06-30 21:30:00&#x27;,\n",
       "               &#x27;2023-06-30 22:00:00&#x27;, &#x27;2023-06-30 22:30:00&#x27;,\n",
       "               &#x27;2023-06-30 23:00:00&#x27;, &#x27;2023-06-30 23:30:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, length=1440, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-ffe16d74-f7bf-4049-adae-b77c13fea5ef' class='xr-section-summary-in' type='checkbox'  checked><label for='section-ffe16d74-f7bf-4049-adae-b77c13fea5ef' class='xr-section-summary' >Attributes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>CodeMissingValue :</span></dt><dd>-9999.9</dd><dt><span>DimensionNames :</span></dt><dd>time,lon,lat</dd><dt><span>Units :</span></dt><dd>mm/hr</dd><dt><span>units :</span></dt><dd>mm/hr</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.DataArray 'precipitationCal' (time: 1440, lon: 20, lat: 10)>\n",
       "dask.array<getitem, shape=(1440, 20, 10), dtype=float32, chunksize=(48, 20, 10), chunktype=numpy.ndarray>\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.05 39.15 39.25 39.35 ... 39.65 39.75 39.85 39.95\n",
       "  * lon      (lon) float32 121.1 121.2 121.2 121.3 ... 122.7 122.8 122.8 122.9\n",
       "  * time     (time) datetime64[ns] 2023-06-01 ... 2023-06-30T23:30:00\n",
       "Attributes:\n",
       "    CodeMissingValue:  -9999.9\n",
       "    DimensionNames:    time,lon,lat\n",
       "    Units:             mm/hr\n",
       "    units:             mm/hr"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bbox=(121,39,123,40)\n",
    "start_time=np.datetime64(\"2023-06-01T00:00:00.000000000\")\n",
    "end_time=np.datetime64(\"2023-06-30T23:30:00.000000000\")\n",
    "\n",
    "g1 = gpm.reader.open_dataset(start_time=start_time, end_time=end_time, dataset='wis', bbox=bbox, time_resolution='30m')\n",
    "g1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7b4df58-6a3a-44fb-b368-a44dff135d9a",
   "metadata": {},
   "source": [
    "- 通过矢量数据文件读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "caebd3b3-6b0d-4700-9ef8-44b400deac4d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;precipitationCal&#x27; (time: 1440, lon: 5, lat: 4)&gt;\n",
       "dask.array&lt;getitem, shape=(1440, 5, 4), dtype=float32, chunksize=(48, 5, 4), chunktype=numpy.ndarray&gt;\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.85 39.95 40.05 40.15\n",
       "  * lon      (lon) float32 122.3 122.4 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2023-06-01 ... 2023-06-30T23:30:00\n",
       "Attributes:\n",
       "    CodeMissingValue:  -9999.9\n",
       "    DimensionNames:    time,lon,lat\n",
       "    Units:             mm/hr\n",
       "    units:             mm/hr</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'precipitationCal'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 1440</li><li><span class='xr-has-index'>lon</span>: 5</li><li><span class='xr-has-index'>lat</span>: 4</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-4c4d2268-1611-4e9f-b4ab-59c1b157b428' class='xr-array-in' type='checkbox' checked><label for='section-4c4d2268-1611-4e9f-b4ab-59c1b157b428' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>dask.array&lt;chunksize=(48, 5, 4), meta=np.ndarray&gt;</span></div><div class='xr-array-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 112.50 kiB </td>\n",
       "                        <td> 3.75 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (1440, 5, 4) </td>\n",
       "                        <td> (48, 5, 4) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 30 chunks in 3 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float32 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"156\" height=\"146\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"10\" y1=\"25\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"27\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"17\" y2=\"32\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"19\" y2=\"34\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"39\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"26\" y2=\"41\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"31\" y2=\"46\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"35\" y2=\"51\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"38\" y2=\"53\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"42\" y2=\"58\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"45\" y2=\"60\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"50\" y2=\"65\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"52\" y2=\"67\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"57\" y2=\"72\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"61\" y2=\"77\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"64\" y2=\"79\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"68\" y2=\"84\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"71\" y2=\"86\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"75\" y2=\"91\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 80.58823529411765,70.58823529411765 80.58823529411765,96.00085180870013 10.0,25.412616514582485\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"37\" y2=\"2\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"42\" y2=\"7\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"44\" y2=\"9\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"49\" y2=\"14\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"51\" y2=\"16\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"56\" y2=\"21\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"61\" y2=\"25\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"63\" y2=\"28\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"68\" y2=\"32\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"70\" y2=\"35\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"75\" y2=\"40\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"77\" y2=\"42\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"82\" y2=\"47\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"87\" y2=\"51\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"89\" y2=\"54\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"94\" y2=\"58\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"96\" y2=\"61\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"101\" y2=\"65\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"35\" y1=\"0\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 35.41261651458248,0.0 106.00085180870013,70.58823529411765 80.58823529411765,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"80\" y1=\"96\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"106\" y1=\"70\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"80.58823529411765,70.58823529411765 106.00085180870013,70.58823529411765 106.00085180870013,96.00085180870013 80.58823529411765,96.00085180870013\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"93.294544\" y=\"116.000852\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >4</text>\n",
       "  <text x=\"126.000852\" y=\"83.294544\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,126.000852,83.294544)\">5</text>\n",
       "  <text x=\"35.294118\" y=\"80.706734\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,35.294118,80.706734)\">1440</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></div></li><li class='xr-section-item'><input id='section-4aacae5f-bca7-4e24-a45f-5f1b1a3814d3' class='xr-section-summary-in' type='checkbox'  checked><label for='section-4aacae5f-bca7-4e24-a45f-5f1b1a3814d3' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>39.85 39.95 40.05 40.15</div><input id='attrs-ff718f0c-d087-4152-9437-cddc7083c7c1' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-ff718f0c-d087-4152-9437-cddc7083c7c1' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c7b5b4dc-3a30-4bfd-9bb2-ba0439b68e12' class='xr-var-data-in' type='checkbox'><label for='data-c7b5b4dc-3a30-4bfd-9bb2-ba0439b68e12' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>Y</dd><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.85, 39.95, 40.05, 40.15], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>122.3 122.4 122.6 122.7 122.8</div><input id='attrs-a1d5f1b9-fad3-4bf5-8977-dc4e8e263a4a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a1d5f1b9-fad3-4bf5-8977-dc4e8e263a4a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-10d8afc4-28d9-446c-8db7-1038ba6ec308' class='xr-var-data-in' type='checkbox'><label for='data-10d8afc4-28d9-446c-8db7-1038ba6ec308' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>X</dd><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([122.35, 122.45, 122.55, 122.65, 122.75], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01 ... 2023-06-30T23:30:00</div><input id='attrs-d1c2ca16-dc7d-4fe6-b4be-749651ab8452' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d1c2ca16-dc7d-4fe6-b4be-749651ab8452' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f9d4ad7b-7a57-4993-9388-5b0dae79aba0' class='xr-var-data-in' type='checkbox'><label for='data-f9d4ad7b-7a57-4993-9388-5b0dae79aba0' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>T</dd><dt><span>standard_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T00:00:00.000000000&#x27;, &#x27;2023-06-01T00:30:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T01:00:00.000000000&#x27;, ..., &#x27;2023-06-30T22:30:00.000000000&#x27;,\n",
       "       &#x27;2023-06-30T23:00:00.000000000&#x27;, &#x27;2023-06-30T23:30:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-0daccb6c-8c2d-40b2-906e-b6e727ab522e' class='xr-section-summary-in' type='checkbox'  ><label for='section-0daccb6c-8c2d-40b2-906e-b6e727ab522e' class='xr-section-summary' >Indexes: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-992af649-e060-4d49-8be9-5dc48fe8f47d' class='xr-index-data-in' type='checkbox'/><label for='index-992af649-e060-4d49-8be9-5dc48fe8f47d' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([39.849998474121094, 39.95000076293945, 40.04999923706055,\n",
       "       40.150001525878906],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-7d8ea87b-58b6-499c-b282-0fc985f5cf0e' class='xr-index-data-in' type='checkbox'/><label for='index-7d8ea87b-58b6-499c-b282-0fc985f5cf0e' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([ 122.3499984741211, 122.44999694824219, 122.55000305175781,\n",
       "        122.6500015258789,             122.75],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-2b423a9d-4e6b-4375-9561-a60e5c9627af' class='xr-index-data-in' type='checkbox'/><label for='index-2b423a9d-4e6b-4375-9561-a60e5c9627af' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01 00:00:00&#x27;, &#x27;2023-06-01 00:30:00&#x27;,\n",
       "               &#x27;2023-06-01 01:00:00&#x27;, &#x27;2023-06-01 01:30:00&#x27;,\n",
       "               &#x27;2023-06-01 02:00:00&#x27;, &#x27;2023-06-01 02:30:00&#x27;,\n",
       "               &#x27;2023-06-01 03:00:00&#x27;, &#x27;2023-06-01 03:30:00&#x27;,\n",
       "               &#x27;2023-06-01 04:00:00&#x27;, &#x27;2023-06-01 04:30:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2023-06-30 19:00:00&#x27;, &#x27;2023-06-30 19:30:00&#x27;,\n",
       "               &#x27;2023-06-30 20:00:00&#x27;, &#x27;2023-06-30 20:30:00&#x27;,\n",
       "               &#x27;2023-06-30 21:00:00&#x27;, &#x27;2023-06-30 21:30:00&#x27;,\n",
       "               &#x27;2023-06-30 22:00:00&#x27;, &#x27;2023-06-30 22:30:00&#x27;,\n",
       "               &#x27;2023-06-30 23:00:00&#x27;, &#x27;2023-06-30 23:30:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, length=1440, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-e95e3f3a-1059-45c1-8eb7-e0be791ec97d' class='xr-section-summary-in' type='checkbox'  checked><label for='section-e95e3f3a-1059-45c1-8eb7-e0be791ec97d' class='xr-section-summary' >Attributes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>CodeMissingValue :</span></dt><dd>-9999.9</dd><dt><span>DimensionNames :</span></dt><dd>time,lon,lat</dd><dt><span>Units :</span></dt><dd>mm/hr</dd><dt><span>units :</span></dt><dd>mm/hr</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.DataArray 'precipitationCal' (time: 1440, lon: 5, lat: 4)>\n",
       "dask.array<getitem, shape=(1440, 5, 4), dtype=float32, chunksize=(48, 5, 4), chunktype=numpy.ndarray>\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.85 39.95 40.05 40.15\n",
       "  * lon      (lon) float32 122.3 122.4 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2023-06-01 ... 2023-06-30T23:30:00\n",
       "Attributes:\n",
       "    CodeMissingValue:  -9999.9\n",
       "    DimensionNames:    time,lon,lat\n",
       "    Units:             mm/hr\n",
       "    units:             mm/hr"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shp = 'basin.geojson'\n",
    "g2 = gpm.reader.from_shp(start_time=start_time, end_time=end_time, dataset='wis', shp=shp, time_resolution='30m')\n",
    "g2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a687eb99-c913-4ff6-8e0e-67b8de9e305c",
   "metadata": {},
   "source": [
    "- 通过已有aoi对象读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "f624c56a-19d4-4ccc-8cfb-ee42fd1e40a3",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;precipitationCal&#x27; (time: 1440, lon: 5, lat: 4)&gt;\n",
       "dask.array&lt;getitem, shape=(1440, 5, 4), dtype=float32, chunksize=(48, 5, 4), chunktype=numpy.ndarray&gt;\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.85 39.95 40.05 40.15\n",
       "  * lon      (lon) float32 122.3 122.4 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2023-06-01 ... 2023-06-30T23:30:00\n",
       "Attributes:\n",
       "    CodeMissingValue:  -9999.9\n",
       "    DimensionNames:    time,lon,lat\n",
       "    Units:             mm/hr\n",
       "    units:             mm/hr</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'precipitationCal'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 1440</li><li><span class='xr-has-index'>lon</span>: 5</li><li><span class='xr-has-index'>lat</span>: 4</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-9d70fbb0-1f34-427d-af1c-dc7759cb49c6' class='xr-array-in' type='checkbox' checked><label for='section-9d70fbb0-1f34-427d-af1c-dc7759cb49c6' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>dask.array&lt;chunksize=(48, 5, 4), meta=np.ndarray&gt;</span></div><div class='xr-array-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 112.50 kiB </td>\n",
       "                        <td> 3.75 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (1440, 5, 4) </td>\n",
       "                        <td> (48, 5, 4) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 30 chunks in 3 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float32 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"156\" height=\"146\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"10\" y1=\"25\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"27\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"17\" y2=\"32\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"19\" y2=\"34\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"39\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"26\" y2=\"41\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"31\" y2=\"46\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"35\" y2=\"51\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"38\" y2=\"53\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"42\" y2=\"58\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"45\" y2=\"60\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"50\" y2=\"65\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"52\" y2=\"67\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"57\" y2=\"72\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"61\" y2=\"77\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"64\" y2=\"79\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"68\" y2=\"84\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"71\" y2=\"86\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"75\" y2=\"91\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 80.58823529411765,70.58823529411765 80.58823529411765,96.00085180870013 10.0,25.412616514582485\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"12\" y1=\"2\" x2=\"37\" y2=\"2\" />\n",
       "  <line x1=\"17\" y1=\"7\" x2=\"42\" y2=\"7\" />\n",
       "  <line x1=\"19\" y1=\"9\" x2=\"44\" y2=\"9\" />\n",
       "  <line x1=\"24\" y1=\"14\" x2=\"49\" y2=\"14\" />\n",
       "  <line x1=\"26\" y1=\"16\" x2=\"51\" y2=\"16\" />\n",
       "  <line x1=\"31\" y1=\"21\" x2=\"56\" y2=\"21\" />\n",
       "  <line x1=\"35\" y1=\"25\" x2=\"61\" y2=\"25\" />\n",
       "  <line x1=\"38\" y1=\"28\" x2=\"63\" y2=\"28\" />\n",
       "  <line x1=\"42\" y1=\"32\" x2=\"68\" y2=\"32\" />\n",
       "  <line x1=\"45\" y1=\"35\" x2=\"70\" y2=\"35\" />\n",
       "  <line x1=\"50\" y1=\"40\" x2=\"75\" y2=\"40\" />\n",
       "  <line x1=\"52\" y1=\"42\" x2=\"77\" y2=\"42\" />\n",
       "  <line x1=\"57\" y1=\"47\" x2=\"82\" y2=\"47\" />\n",
       "  <line x1=\"61\" y1=\"51\" x2=\"87\" y2=\"51\" />\n",
       "  <line x1=\"64\" y1=\"54\" x2=\"89\" y2=\"54\" />\n",
       "  <line x1=\"68\" y1=\"58\" x2=\"94\" y2=\"58\" />\n",
       "  <line x1=\"71\" y1=\"61\" x2=\"96\" y2=\"61\" />\n",
       "  <line x1=\"75\" y1=\"65\" x2=\"101\" y2=\"65\" />\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"10\" y1=\"0\" x2=\"80\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"35\" y1=\"0\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"10.0,0.0 35.41261651458248,0.0 106.00085180870013,70.58823529411765 80.58823529411765,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"106\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"80\" y1=\"96\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"80\" y1=\"70\" x2=\"80\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"106\" y1=\"70\" x2=\"106\" y2=\"96\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"80.58823529411765,70.58823529411765 106.00085180870013,70.58823529411765 106.00085180870013,96.00085180870013 80.58823529411765,96.00085180870013\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"93.294544\" y=\"116.000852\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >4</text>\n",
       "  <text x=\"126.000852\" y=\"83.294544\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,126.000852,83.294544)\">5</text>\n",
       "  <text x=\"35.294118\" y=\"80.706734\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,35.294118,80.706734)\">1440</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></div></li><li class='xr-section-item'><input id='section-1e7f64b5-89ef-45f2-9fe8-56270a5787ea' class='xr-section-summary-in' type='checkbox'  checked><label for='section-1e7f64b5-89ef-45f2-9fe8-56270a5787ea' class='xr-section-summary' >Coordinates: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>39.85 39.95 40.05 40.15</div><input id='attrs-b208fda3-c46b-49f2-83da-eb7fd6951c17' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b208fda3-c46b-49f2-83da-eb7fd6951c17' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9e2f3420-0e8d-467b-8c63-a1d2e867018e' class='xr-var-data-in' type='checkbox'><label for='data-9e2f3420-0e8d-467b-8c63-a1d2e867018e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>Y</dd><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.85, 39.95, 40.05, 40.15], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>122.3 122.4 122.6 122.7 122.8</div><input id='attrs-5c3b711e-8e3b-44aa-a1a8-616b014020a8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5c3b711e-8e3b-44aa-a1a8-616b014020a8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bf072422-69d0-4ae1-8a69-0e9c619f58a9' class='xr-var-data-in' type='checkbox'><label for='data-bf072422-69d0-4ae1-8a69-0e9c619f58a9' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>X</dd><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([122.35, 122.45, 122.55, 122.65, 122.75], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01 ... 2023-06-30T23:30:00</div><input id='attrs-358f38d9-e2ce-4266-8ce2-bab91dca834e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-358f38d9-e2ce-4266-8ce2-bab91dca834e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a50d7b5d-963d-4ee4-991d-401c4a54ff24' class='xr-var-data-in' type='checkbox'><label for='data-a50d7b5d-963d-4ee4-991d-401c4a54ff24' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>axis :</span></dt><dd>T</dd><dt><span>standard_name :</span></dt><dd>time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T00:00:00.000000000&#x27;, &#x27;2023-06-01T00:30:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T01:00:00.000000000&#x27;, ..., &#x27;2023-06-30T22:30:00.000000000&#x27;,\n",
       "       &#x27;2023-06-30T23:00:00.000000000&#x27;, &#x27;2023-06-30T23:30:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-622626d1-3f29-40e3-91a0-438f7468ca78' class='xr-section-summary-in' type='checkbox'  ><label for='section-622626d1-3f29-40e3-91a0-438f7468ca78' class='xr-section-summary' >Indexes: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-ae390b46-bbc0-4e26-9bb2-d2fb00de18ae' class='xr-index-data-in' type='checkbox'/><label for='index-ae390b46-bbc0-4e26-9bb2-d2fb00de18ae' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([39.849998474121094, 39.95000076293945, 40.04999923706055,\n",
       "       40.150001525878906],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-a495b3ec-2b39-4257-9faf-7321c716937e' class='xr-index-data-in' type='checkbox'/><label for='index-a495b3ec-2b39-4257-9faf-7321c716937e' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([ 122.3499984741211, 122.44999694824219, 122.55000305175781,\n",
       "        122.6500015258789,             122.75],\n",
       "      dtype=&#x27;float32&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-6d8b1e0a-770a-44ef-ada4-de5ad8b925de' class='xr-index-data-in' type='checkbox'/><label for='index-6d8b1e0a-770a-44ef-ada4-de5ad8b925de' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01 00:00:00&#x27;, &#x27;2023-06-01 00:30:00&#x27;,\n",
       "               &#x27;2023-06-01 01:00:00&#x27;, &#x27;2023-06-01 01:30:00&#x27;,\n",
       "               &#x27;2023-06-01 02:00:00&#x27;, &#x27;2023-06-01 02:30:00&#x27;,\n",
       "               &#x27;2023-06-01 03:00:00&#x27;, &#x27;2023-06-01 03:30:00&#x27;,\n",
       "               &#x27;2023-06-01 04:00:00&#x27;, &#x27;2023-06-01 04:30:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2023-06-30 19:00:00&#x27;, &#x27;2023-06-30 19:30:00&#x27;,\n",
       "               &#x27;2023-06-30 20:00:00&#x27;, &#x27;2023-06-30 20:30:00&#x27;,\n",
       "               &#x27;2023-06-30 21:00:00&#x27;, &#x27;2023-06-30 21:30:00&#x27;,\n",
       "               &#x27;2023-06-30 22:00:00&#x27;, &#x27;2023-06-30 22:30:00&#x27;,\n",
       "               &#x27;2023-06-30 23:00:00&#x27;, &#x27;2023-06-30 23:30:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, length=1440, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-6b09e6a9-062a-47a3-8464-d8d1e55d9d6f' class='xr-section-summary-in' type='checkbox'  checked><label for='section-6b09e6a9-062a-47a3-8464-d8d1e55d9d6f' class='xr-section-summary' >Attributes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>CodeMissingValue :</span></dt><dd>-9999.9</dd><dt><span>DimensionNames :</span></dt><dd>time,lon,lat</dd><dt><span>Units :</span></dt><dd>mm/hr</dd><dt><span>units :</span></dt><dd>mm/hr</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.DataArray 'precipitationCal' (time: 1440, lon: 5, lat: 4)>\n",
       "dask.array<getitem, shape=(1440, 5, 4), dtype=float32, chunksize=(48, 5, 4), chunktype=numpy.ndarray>\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 39.85 39.95 40.05 40.15\n",
       "  * lon      (lon) float32 122.3 122.4 122.6 122.7 122.8\n",
       "  * time     (time) datetime64[ns] 2023-06-01 ... 2023-06-30T23:30:00\n",
       "Attributes:\n",
       "    CodeMissingValue:  -9999.9\n",
       "    DimensionNames:    time,lon,lat\n",
       "    Units:             mm/hr\n",
       "    units:             mm/hr"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "aoi = gpd.read_file(shp)\n",
    "g3 = gpm.reader.from_aoi(start_time=start_time, end_time=end_time, dataset='wis', aoi=aoi, time_resolution='30m')\n",
    "g3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "89272645-1269-4bc8-a016-79951bb97457",
   "metadata": {},
   "source": [
    "## gfs数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "5efe5700-abca-4d24-bd0a-dc6cd8a3cd0f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "from hydrodata.data.minio import GFS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "fb682c82-711c-448c-8ddc-a81a5d57b8f3",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "gfs = GFS('tp')    # 需要指定变量名，tp表示降雨"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "317a3574-26f8-43e9-8149-776ddaf5ae18",
   "metadata": {},
   "source": [
    "### 主要通过catalog和reader两个属性对象进行数据操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "dc051af9-121b-4693-9f9f-79c299a4525f",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NOAA\n"
     ]
    }
   ],
   "source": [
    "# dir(gfs.catalog), dir(gfs.reader)\n",
    "\n",
    "print(gfs.catalog.data_sources)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d2d8f361-9543-464d-adc4-3cd6468fb417",
   "metadata": {},
   "source": [
    "### 利用`catalog`获取gfs数据的数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "7dd8d8bb-6596-482e-8ac4-f36e116d4325",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'wis': [{'start': '2016-07-10T00',\n",
       "   'end': '2022-08-31T18',\n",
       "   'bbox': [115, 38, 136, 54]},\n",
       "  {'start': '2022-09-01T00',\n",
       "   'end': '2023-10-11T06',\n",
       "   'bbox': [73, 3, 136, 54]}]}"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gfs.catalog.datasets"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc89ef5c-94e9-4f5e-8102-4e527846ae20",
   "metadata": {},
   "source": [
    "- 利用`catalog.search()`方法搜索gfs数据的数据集，可指定时间范围和空间范围"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "0c500365-511b-43fe-b642-3840d6811ff1",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>dataset</th>\n",
       "      <th>start_time</th>\n",
       "      <th>end_time</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>gfs_atmos.tp</td>\n",
       "      <td>wis</td>\n",
       "      <td>2016-07-10T00</td>\n",
       "      <td>2022-08-31T18</td>\n",
       "      <td>POLYGON ((122.39342 39.81027, 122.31744 39.833...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>gfs_atmos.tp</td>\n",
       "      <td>wis</td>\n",
       "      <td>2022-09-01T00</td>\n",
       "      <td>2023-10-11T06</td>\n",
       "      <td>POLYGON ((122.39342 39.81027, 122.31744 39.833...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             id dataset     start_time       end_time  \\\n",
       "0  gfs_atmos.tp     wis  2016-07-10T00  2022-08-31T18   \n",
       "0  gfs_atmos.tp     wis  2022-09-01T00  2023-10-11T06   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((122.39342 39.81027, 122.31744 39.833...  \n",
       "0  POLYGON ((122.39342 39.81027, 122.31744 39.833...  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f = gfs.catalog.search(aoi=aoi)\n",
    "f"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "79afcfbc-e03b-4404-a610-935923c16d59",
   "metadata": {
    "tags": []
   },
   "source": [
    "### 利用`reader`读取gfs数据"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7c2fd12-b98e-475c-a962-559fac4e1b48",
   "metadata": {},
   "source": [
    "- 通过指定四至范围读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "18e44f61-aa28-4875-aefe-e37293307721",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
       "Dimensions:     (lat: 5, lon: 9, step: 120, time: 1, valid_time: 120)\n",
       "Coordinates:\n",
       "  * lat         (lat) float64 39.0 39.25 39.5 39.75 40.0\n",
       "  * lon         (lon) float64 121.0 121.2 121.5 121.8 ... 122.5 122.8 123.0\n",
       "  * step        (step) int64 1 2 3 4 5 6 7 8 ... 113 114 115 116 117 118 119 120\n",
       "  * time        (time) datetime64[ns] 2023-06-01\n",
       "  * valid_time  (valid_time) datetime64[ns] 2023-06-01T01:00:00 ... 2023-06-06\n",
       "Data variables:\n",
       "    tp          (valid_time, step, lat, lon) float64 dask.array&lt;chunksize=(24, 1, 5, 9), meta=np.ndarray&gt;\n",
       "Attributes:\n",
       "    centre:             kwbc\n",
       "    centreDescription:  US National Weather Service - NCEP\n",
       "    edition:            2\n",
       "    subCentre:          0</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-bfecddaf-e670-40b3-b418-dd932d031e6a' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-bfecddaf-e670-40b3-b418-dd932d031e6a' class='xr-section-summary'  title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>lat</span>: 5</li><li><span class='xr-has-index'>lon</span>: 9</li><li><span class='xr-has-index'>step</span>: 120</li><li><span class='xr-has-index'>time</span>: 1</li><li><span class='xr-has-index'>valid_time</span>: 120</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-e2ec0a2e-daba-4f5a-b599-124a00b30656' class='xr-section-summary-in' type='checkbox'  checked><label for='section-e2ec0a2e-daba-4f5a-b599-124a00b30656' class='xr-section-summary' >Coordinates: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>39.0 39.25 39.5 39.75 40.0</div><input id='attrs-d8b9a3e6-f0b1-441e-bce8-e4ba1044125d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d8b9a3e6-f0b1-441e-bce8-e4ba1044125d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-90079c47-0e14-4316-b8bf-ce094efad567' class='xr-var-data-in' type='checkbox'><label for='data-90079c47-0e14-4316-b8bf-ce094efad567' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.  , 39.25, 39.5 , 39.75, 40.  ])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>121.0 121.2 121.5 ... 122.8 123.0</div><input id='attrs-d8492f8e-e0a4-4cef-99b9-df51b98b1ecf' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d8492f8e-e0a4-4cef-99b9-df51b98b1ecf' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-05282244-c0ed-40b2-aadd-d3c1999f18d5' class='xr-var-data-in' type='checkbox'><label for='data-05282244-c0ed-40b2-aadd-d3c1999f18d5' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([121.  , 121.25, 121.5 , 121.75, 122.  , 122.25, 122.5 , 122.75, 123.  ])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>step</span></div><div class='xr-var-dims'>(step)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>1 2 3 4 5 6 ... 116 117 118 119 120</div><input id='attrs-5acf701b-2fac-4efe-bdad-b5e8cebd7344' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-5acf701b-2fac-4efe-bdad-b5e8cebd7344' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bf309d29-9f10-4adb-aa17-3783ac3fd65e' class='xr-var-data-in' type='checkbox'><label for='data-bf309d29-9f10-4adb-aa17-3783ac3fd65e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,\n",
       "        15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,\n",
       "        29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,\n",
       "        43,  44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,\n",
       "        57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,\n",
       "        71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,\n",
       "        85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,\n",
       "        99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n",
       "       113, 114, 115, 116, 117, 118, 119, 120])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01</div><input id='attrs-6c61246c-1eec-4bab-84c4-dd92464fc4a5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6c61246c-1eec-4bab-84c4-dd92464fc4a5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-29d7b884-0d2f-4740-beb1-3a42a1e4f809' class='xr-var-data-in' type='checkbox'><label for='data-29d7b884-0d2f-4740-beb1-3a42a1e4f809' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>initial time of forecast</dd><dt><span>standard_name :</span></dt><dd>forecast_reference_time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T00:00:00.000000000&#x27;], dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>valid_time</span></div><div class='xr-var-dims'>(valid_time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01T01:00:00 ... 2023-06-06</div><input id='attrs-985f670e-c191-48eb-b0f4-6e353244ba0c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-985f670e-c191-48eb-b0f4-6e353244ba0c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-37fd2121-7841-4259-8011-5f4e544cb360' class='xr-var-data-in' type='checkbox'><label for='data-37fd2121-7841-4259-8011-5f4e544cb360' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>_FillValue :</span></dt><dd>1970-01-01T00:00:00.000000000</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T01:00:00.000000000&#x27;, &#x27;2023-06-01T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T03:00:00.000000000&#x27;, &#x27;2023-06-01T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T05:00:00.000000000&#x27;, &#x27;2023-06-01T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T07:00:00.000000000&#x27;, &#x27;2023-06-01T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T09:00:00.000000000&#x27;, &#x27;2023-06-01T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T11:00:00.000000000&#x27;, &#x27;2023-06-01T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T13:00:00.000000000&#x27;, &#x27;2023-06-01T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T15:00:00.000000000&#x27;, &#x27;2023-06-01T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T17:00:00.000000000&#x27;, &#x27;2023-06-01T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T19:00:00.000000000&#x27;, &#x27;2023-06-01T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T21:00:00.000000000&#x27;, &#x27;2023-06-01T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T23:00:00.000000000&#x27;, &#x27;2023-06-02T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T01:00:00.000000000&#x27;, &#x27;2023-06-02T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T03:00:00.000000000&#x27;, &#x27;2023-06-02T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T05:00:00.000000000&#x27;, &#x27;2023-06-02T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T07:00:00.000000000&#x27;, &#x27;2023-06-02T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T09:00:00.000000000&#x27;, &#x27;2023-06-02T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T11:00:00.000000000&#x27;, &#x27;2023-06-02T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T13:00:00.000000000&#x27;, &#x27;2023-06-02T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T15:00:00.000000000&#x27;, &#x27;2023-06-02T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T17:00:00.000000000&#x27;, &#x27;2023-06-02T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T19:00:00.000000000&#x27;, &#x27;2023-06-02T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T21:00:00.000000000&#x27;, &#x27;2023-06-02T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T23:00:00.000000000&#x27;, &#x27;2023-06-03T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T01:00:00.000000000&#x27;, &#x27;2023-06-03T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T03:00:00.000000000&#x27;, &#x27;2023-06-03T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T05:00:00.000000000&#x27;, &#x27;2023-06-03T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T07:00:00.000000000&#x27;, &#x27;2023-06-03T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T09:00:00.000000000&#x27;, &#x27;2023-06-03T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T11:00:00.000000000&#x27;, &#x27;2023-06-03T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T13:00:00.000000000&#x27;, &#x27;2023-06-03T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T15:00:00.000000000&#x27;, &#x27;2023-06-03T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T17:00:00.000000000&#x27;, &#x27;2023-06-03T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T19:00:00.000000000&#x27;, &#x27;2023-06-03T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T21:00:00.000000000&#x27;, &#x27;2023-06-03T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T23:00:00.000000000&#x27;, &#x27;2023-06-04T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T01:00:00.000000000&#x27;, &#x27;2023-06-04T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T03:00:00.000000000&#x27;, &#x27;2023-06-04T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T05:00:00.000000000&#x27;, &#x27;2023-06-04T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T07:00:00.000000000&#x27;, &#x27;2023-06-04T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T09:00:00.000000000&#x27;, &#x27;2023-06-04T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T11:00:00.000000000&#x27;, &#x27;2023-06-04T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T13:00:00.000000000&#x27;, &#x27;2023-06-04T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T15:00:00.000000000&#x27;, &#x27;2023-06-04T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T17:00:00.000000000&#x27;, &#x27;2023-06-04T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T19:00:00.000000000&#x27;, &#x27;2023-06-04T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T21:00:00.000000000&#x27;, &#x27;2023-06-04T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T23:00:00.000000000&#x27;, &#x27;2023-06-05T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T01:00:00.000000000&#x27;, &#x27;2023-06-05T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T03:00:00.000000000&#x27;, &#x27;2023-06-05T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T05:00:00.000000000&#x27;, &#x27;2023-06-05T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T07:00:00.000000000&#x27;, &#x27;2023-06-05T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T09:00:00.000000000&#x27;, &#x27;2023-06-05T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T11:00:00.000000000&#x27;, &#x27;2023-06-05T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T13:00:00.000000000&#x27;, &#x27;2023-06-05T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T15:00:00.000000000&#x27;, &#x27;2023-06-05T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T17:00:00.000000000&#x27;, &#x27;2023-06-05T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T19:00:00.000000000&#x27;, &#x27;2023-06-05T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T21:00:00.000000000&#x27;, &#x27;2023-06-05T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T23:00:00.000000000&#x27;, &#x27;2023-06-06T00:00:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-e2799d52-83f0-4c0e-8587-fa20cc38ce17' class='xr-section-summary-in' type='checkbox'  checked><label for='section-e2799d52-83f0-4c0e-8587-fa20cc38ce17' class='xr-section-summary' >Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>tp</span></div><div class='xr-var-dims'>(valid_time, step, lat, lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(24, 1, 5, 9), meta=np.ndarray&gt;</div><input id='attrs-5a010504-c0e5-4b4e-9df5-d47637808178' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5a010504-c0e5-4b4e-9df5-d47637808178' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-15533e7c-9aec-439e-ab95-5b287b3de8b4' class='xr-var-data-in' type='checkbox'><label for='data-15533e7c-9aec-439e-ab95-5b287b3de8b4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>NV :</span></dt><dd>0</dd><dt><span>cfName :</span></dt><dd>unknown</dd><dt><span>cfVarName :</span></dt><dd>unknown</dd><dt><span>dataDate :</span></dt><dd>20230601</dd><dt><span>dataTime :</span></dt><dd>0</dd><dt><span>dataType :</span></dt><dd>fc</dd><dt><span>endStep :</span></dt><dd>1</dd><dt><span>gridDefinitionDescription :</span></dt><dd>Latitude/longitude. Also called equidistant cylindrical, or Plate Carree</dd><dt><span>gridType :</span></dt><dd>regular_ll</dd><dt><span>missingValue :</span></dt><dd>9999</dd><dt><span>name :</span></dt><dd>Total Precipitation</dd><dt><span>numberOfPoints :</span></dt><dd>51865</dd><dt><span>paramId :</span></dt><dd>228228</dd><dt><span>shortName :</span></dt><dd>tp</dd><dt><span>stepType :</span></dt><dd>accum</dd><dt><span>stepUnits :</span></dt><dd>1</dd><dt><span>typeOfLevel :</span></dt><dd>surface</dd><dt><span>units :</span></dt><dd>kg m**-2</dd></dl></div><div class='xr-var-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 4.94 MiB </td>\n",
       "                        <td> 8.44 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (120, 120, 5, 9) </td>\n",
       "                        <td> (24, 1, 5, 9) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 600 chunks in 3 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float64 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"537\" height=\"153\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"0\" y1=\"0\" x2=\"120\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"0\" y1=\"25\" x2=\"120\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"25\" />\n",
       "  <line x1=\"48\" y1=\"0\" x2=\"48\" y2=\"25\" />\n",
       "  <line x1=\"72\" y1=\"0\" x2=\"72\" y2=\"25\" />\n",
       "  <line x1=\"96\" y1=\"0\" x2=\"96\" y2=\"25\" />\n",
       "  <line x1=\"120\" y1=\"0\" x2=\"120\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"0.0,0.0 120.0,0.0 120.0,25.412616514582485 0.0,25.412616514582485\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"60.000000\" y=\"45.412617\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >120</text>\n",
       "  <text x=\"140.000000\" y=\"12.706308\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,140.000000,12.706308)\">1</text>\n",
       "\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"260\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"190\" y1=\"33\" x2=\"260\" y2=\"103\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"190\" y2=\"33\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"191\" y1=\"1\" x2=\"191\" y2=\"35\" />\n",
       "  <line x1=\"194\" y1=\"4\" x2=\"194\" y2=\"37\" />\n",
       "  <line x1=\"196\" y1=\"6\" x2=\"196\" y2=\"39\" />\n",
       "  <line x1=\"198\" y1=\"8\" x2=\"198\" y2=\"42\" />\n",
       "  <line x1=\"200\" y1=\"10\" x2=\"200\" y2=\"43\" />\n",
       "  <line x1=\"202\" y1=\"12\" x2=\"202\" y2=\"46\" />\n",
       "  <line x1=\"205\" y1=\"15\" x2=\"205\" y2=\"48\" />\n",
       "  <line x1=\"207\" y1=\"17\" x2=\"207\" y2=\"51\" />\n",
       "  <line x1=\"209\" y1=\"19\" x2=\"209\" y2=\"52\" />\n",
       "  <line x1=\"211\" y1=\"21\" x2=\"211\" y2=\"55\" />\n",
       "  <line x1=\"214\" y1=\"24\" x2=\"214\" y2=\"57\" />\n",
       "  <line x1=\"216\" y1=\"26\" x2=\"216\" y2=\"59\" />\n",
       "  <line x1=\"218\" y1=\"28\" x2=\"218\" y2=\"61\" />\n",
       "  <line x1=\"220\" y1=\"30\" x2=\"220\" y2=\"63\" />\n",
       "  <line x1=\"222\" y1=\"32\" x2=\"222\" y2=\"66\" />\n",
       "  <line x1=\"225\" y1=\"35\" x2=\"225\" y2=\"68\" />\n",
       "  <line x1=\"227\" y1=\"37\" x2=\"227\" y2=\"70\" />\n",
       "  <line x1=\"229\" y1=\"39\" x2=\"229\" y2=\"72\" />\n",
       "  <line x1=\"231\" y1=\"41\" x2=\"231\" y2=\"75\" />\n",
       "  <line x1=\"234\" y1=\"44\" x2=\"234\" y2=\"77\" />\n",
       "  <line x1=\"235\" y1=\"45\" x2=\"235\" y2=\"79\" />\n",
       "  <line x1=\"238\" y1=\"48\" x2=\"238\" y2=\"81\" />\n",
       "  <line x1=\"240\" y1=\"50\" x2=\"240\" y2=\"83\" />\n",
       "  <line x1=\"242\" y1=\"52\" x2=\"242\" y2=\"86\" />\n",
       "  <line x1=\"244\" y1=\"54\" x2=\"244\" y2=\"88\" />\n",
       "  <line x1=\"247\" y1=\"57\" x2=\"247\" y2=\"90\" />\n",
       "  <line x1=\"249\" y1=\"59\" x2=\"249\" y2=\"92\" />\n",
       "  <line x1=\"251\" y1=\"61\" x2=\"251\" y2=\"95\" />\n",
       "  <line x1=\"253\" y1=\"63\" x2=\"253\" y2=\"96\" />\n",
       "  <line x1=\"255\" y1=\"65\" x2=\"255\" y2=\"99\" />\n",
       "  <line x1=\"258\" y1=\"68\" x2=\"258\" y2=\"101\" />\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"260\" y2=\"103\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"190.0,0.0 260.5882352941177,70.58823529411765 260.5882352941177,103.97193373564438 190.0,33.38369844152673\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"226\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"191\" y1=\"1\" x2=\"228\" y2=\"1\" />\n",
       "  <line x1=\"194\" y1=\"4\" x2=\"231\" y2=\"4\" />\n",
       "  <line x1=\"196\" y1=\"6\" x2=\"233\" y2=\"6\" />\n",
       "  <line x1=\"198\" y1=\"8\" x2=\"235\" y2=\"8\" />\n",
       "  <line x1=\"200\" y1=\"10\" x2=\"237\" y2=\"10\" />\n",
       "  <line x1=\"202\" y1=\"12\" x2=\"239\" y2=\"12\" />\n",
       "  <line x1=\"205\" y1=\"15\" x2=\"242\" y2=\"15\" />\n",
       "  <line x1=\"207\" y1=\"17\" x2=\"244\" y2=\"17\" />\n",
       "  <line x1=\"209\" y1=\"19\" x2=\"246\" y2=\"19\" />\n",
       "  <line x1=\"211\" y1=\"21\" x2=\"248\" y2=\"21\" />\n",
       "  <line x1=\"214\" y1=\"24\" x2=\"251\" y2=\"24\" />\n",
       "  <line x1=\"216\" y1=\"26\" x2=\"253\" y2=\"26\" />\n",
       "  <line x1=\"218\" y1=\"28\" x2=\"255\" y2=\"28\" />\n",
       "  <line x1=\"220\" y1=\"30\" x2=\"257\" y2=\"30\" />\n",
       "  <line x1=\"222\" y1=\"32\" x2=\"259\" y2=\"32\" />\n",
       "  <line x1=\"225\" y1=\"35\" x2=\"262\" y2=\"35\" />\n",
       "  <line x1=\"227\" y1=\"37\" x2=\"264\" y2=\"37\" />\n",
       "  <line x1=\"229\" y1=\"39\" x2=\"266\" y2=\"39\" />\n",
       "  <line x1=\"231\" y1=\"41\" x2=\"268\" y2=\"41\" />\n",
       "  <line x1=\"234\" y1=\"44\" x2=\"271\" y2=\"44\" />\n",
       "  <line x1=\"235\" y1=\"45\" x2=\"272\" y2=\"45\" />\n",
       "  <line x1=\"238\" y1=\"48\" x2=\"275\" y2=\"48\" />\n",
       "  <line x1=\"240\" y1=\"50\" x2=\"277\" y2=\"50\" />\n",
       "  <line x1=\"242\" y1=\"52\" x2=\"279\" y2=\"52\" />\n",
       "  <line x1=\"244\" y1=\"54\" x2=\"281\" y2=\"54\" />\n",
       "  <line x1=\"247\" y1=\"57\" x2=\"284\" y2=\"57\" />\n",
       "  <line x1=\"249\" y1=\"59\" x2=\"286\" y2=\"59\" />\n",
       "  <line x1=\"251\" y1=\"61\" x2=\"288\" y2=\"61\" />\n",
       "  <line x1=\"253\" y1=\"63\" x2=\"290\" y2=\"63\" />\n",
       "  <line x1=\"255\" y1=\"65\" x2=\"292\" y2=\"65\" />\n",
       "  <line x1=\"258\" y1=\"68\" x2=\"295\" y2=\"68\" />\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"297\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"260\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"226\" y1=\"0\" x2=\"297\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"190.0,0.0 226.9482339141386,0.0 297.5364692082562,70.58823529411765 260.5882352941177,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"297\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"260\" y1=\"103\" x2=\"297\" y2=\"103\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"260\" y2=\"103\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"297\" y1=\"70\" x2=\"297\" y2=\"103\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"260.5882352941177,70.58823529411765 297.5364692082563,70.58823529411765 297.5364692082563,103.97193373564438 260.5882352941177,103.97193373564438\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"279.062352\" y=\"123.971934\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >9</text>\n",
       "  <text x=\"317.536469\" y=\"87.280085\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,317.536469,87.280085)\">5</text>\n",
       "  <text x=\"215.294118\" y=\"88.677816\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,215.294118,88.677816)\">120</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-d04c8351-27b2-487f-ad4b-dec457251621' class='xr-section-summary-in' type='checkbox'  ><label for='section-d04c8351-27b2-487f-ad4b-dec457251621' class='xr-section-summary' >Indexes: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-bf345b9b-5f4e-4c3f-913a-ea770fc0e626' class='xr-index-data-in' type='checkbox'/><label for='index-bf345b9b-5f4e-4c3f-913a-ea770fc0e626' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([39.0, 39.25, 39.5, 39.75, 40.0], dtype=&#x27;float64&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-a6a8f1d1-37a6-4ff5-a500-dac4479c2722' class='xr-index-data-in' type='checkbox'/><label for='index-a6a8f1d1-37a6-4ff5-a500-dac4479c2722' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([121.0, 121.25, 121.5, 121.75, 122.0, 122.25, 122.5, 122.75, 123.0], dtype=&#x27;float64&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>step</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-5cb7db03-993e-4724-9aee-cee97b22427e' class='xr-index-data-in' type='checkbox'/><label for='index-5cb7db03-993e-4724-9aee-cee97b22427e' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,\n",
       "       ...\n",
       "       111, 112, 113, 114, 115, 116, 117, 118, 119, 120],\n",
       "      dtype=&#x27;int64&#x27;, name=&#x27;step&#x27;, length=120))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-80c6d243-eea7-4ccf-afb0-26c7ab79089c' class='xr-index-data-in' type='checkbox'/><label for='index-80c6d243-eea7-4ccf-afb0-26c7ab79089c' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01&#x27;], dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, freq=None))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>valid_time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-9bc50180-22a6-4f77-9a50-d9f299279283' class='xr-index-data-in' type='checkbox'/><label for='index-9bc50180-22a6-4f77-9a50-d9f299279283' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01 01:00:00&#x27;, &#x27;2023-06-01 02:00:00&#x27;,\n",
       "               &#x27;2023-06-01 03:00:00&#x27;, &#x27;2023-06-01 04:00:00&#x27;,\n",
       "               &#x27;2023-06-01 05:00:00&#x27;, &#x27;2023-06-01 06:00:00&#x27;,\n",
       "               &#x27;2023-06-01 07:00:00&#x27;, &#x27;2023-06-01 08:00:00&#x27;,\n",
       "               &#x27;2023-06-01 09:00:00&#x27;, &#x27;2023-06-01 10:00:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2023-06-05 15:00:00&#x27;, &#x27;2023-06-05 16:00:00&#x27;,\n",
       "               &#x27;2023-06-05 17:00:00&#x27;, &#x27;2023-06-05 18:00:00&#x27;,\n",
       "               &#x27;2023-06-05 19:00:00&#x27;, &#x27;2023-06-05 20:00:00&#x27;,\n",
       "               &#x27;2023-06-05 21:00:00&#x27;, &#x27;2023-06-05 22:00:00&#x27;,\n",
       "               &#x27;2023-06-05 23:00:00&#x27;, &#x27;2023-06-06 00:00:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;valid_time&#x27;, length=120, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-de427d68-f371-4362-b3e0-28222aebac37' class='xr-section-summary-in' type='checkbox'  checked><label for='section-de427d68-f371-4362-b3e0-28222aebac37' class='xr-section-summary' >Attributes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>centre :</span></dt><dd>kwbc</dd><dt><span>centreDescription :</span></dt><dd>US National Weather Service - NCEP</dd><dt><span>edition :</span></dt><dd>2</dd><dt><span>subCentre :</span></dt><dd>0</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset>\n",
       "Dimensions:     (lat: 5, lon: 9, step: 120, time: 1, valid_time: 120)\n",
       "Coordinates:\n",
       "  * lat         (lat) float64 39.0 39.25 39.5 39.75 40.0\n",
       "  * lon         (lon) float64 121.0 121.2 121.5 121.8 ... 122.5 122.8 123.0\n",
       "  * step        (step) int64 1 2 3 4 5 6 7 8 ... 113 114 115 116 117 118 119 120\n",
       "  * time        (time) datetime64[ns] 2023-06-01\n",
       "  * valid_time  (valid_time) datetime64[ns] 2023-06-01T01:00:00 ... 2023-06-06\n",
       "Data variables:\n",
       "    tp          (valid_time, step, lat, lon) float64 dask.array<chunksize=(24, 1, 5, 9), meta=np.ndarray>\n",
       "Attributes:\n",
       "    centre:             kwbc\n",
       "    centreDescription:  US National Weather Service - NCEP\n",
       "    edition:            2\n",
       "    subCentre:          0"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bbox=(121,39,123,40)\n",
    "creation_date=np.datetime64(\"2023-06-01\")\n",
    "\n",
    "f1 = gfs.reader.open_dataset(creation_date=creation_date, creation_time='00', dataset='wis', bbox=bbox)\n",
    "f1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a447c15-9fd4-4559-9e89-f2d09b726bb3",
   "metadata": {},
   "source": [
    "- 通过矢量数据文件读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "c744ea8e-8b1b-478a-a87b-082ce8273a90",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
       "Dimensions:     (lat: 3, lon: 3, step: 120, time: 1, valid_time: 120)\n",
       "Coordinates:\n",
       "  * lat         (lat) float64 39.75 40.0 40.25\n",
       "  * lon         (lon) float64 122.2 122.5 122.8\n",
       "  * step        (step) int64 1 2 3 4 5 6 7 8 ... 113 114 115 116 117 118 119 120\n",
       "  * time        (time) datetime64[ns] 2023-06-01\n",
       "  * valid_time  (valid_time) datetime64[ns] 2023-06-01T01:00:00 ... 2023-06-06\n",
       "Data variables:\n",
       "    tp          (valid_time, step, lat, lon) float64 dask.array&lt;chunksize=(24, 1, 3, 3), meta=np.ndarray&gt;\n",
       "Attributes:\n",
       "    centre:             kwbc\n",
       "    centreDescription:  US National Weather Service - NCEP\n",
       "    edition:            2\n",
       "    subCentre:          0</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-f297bed7-c321-4bfe-8de2-b78acc09d838' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-f297bed7-c321-4bfe-8de2-b78acc09d838' class='xr-section-summary'  title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>lat</span>: 3</li><li><span class='xr-has-index'>lon</span>: 3</li><li><span class='xr-has-index'>step</span>: 120</li><li><span class='xr-has-index'>time</span>: 1</li><li><span class='xr-has-index'>valid_time</span>: 120</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-da12b616-c34e-4024-beb5-58013af8b090' class='xr-section-summary-in' type='checkbox'  checked><label for='section-da12b616-c34e-4024-beb5-58013af8b090' class='xr-section-summary' >Coordinates: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>39.75 40.0 40.25</div><input id='attrs-550cdabe-8fda-4cb8-ade4-0a333bed6a3e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-550cdabe-8fda-4cb8-ade4-0a333bed6a3e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6fe7dcfe-005f-451c-a0cd-3dd4a3dd0b36' class='xr-var-data-in' type='checkbox'><label for='data-6fe7dcfe-005f-451c-a0cd-3dd4a3dd0b36' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.75, 40.  , 40.25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>122.2 122.5 122.8</div><input id='attrs-fc10892a-77ab-4b2e-9e94-6e365b8c72c8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-fc10892a-77ab-4b2e-9e94-6e365b8c72c8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9ba43336-26a9-4b50-905e-ddcdb15fa079' class='xr-var-data-in' type='checkbox'><label for='data-9ba43336-26a9-4b50-905e-ddcdb15fa079' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([122.25, 122.5 , 122.75])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>step</span></div><div class='xr-var-dims'>(step)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>1 2 3 4 5 6 ... 116 117 118 119 120</div><input id='attrs-b57b23b6-c642-4469-86fc-628422cc606b' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-b57b23b6-c642-4469-86fc-628422cc606b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d3d557c3-c2d1-4832-abf6-d5cd8c8ece53' class='xr-var-data-in' type='checkbox'><label for='data-d3d557c3-c2d1-4832-abf6-d5cd8c8ece53' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,\n",
       "        15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,\n",
       "        29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,\n",
       "        43,  44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,\n",
       "        57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,\n",
       "        71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,\n",
       "        85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,\n",
       "        99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n",
       "       113, 114, 115, 116, 117, 118, 119, 120])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01</div><input id='attrs-2928b785-ffdf-48fe-99fe-e1b5664099fa' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-2928b785-ffdf-48fe-99fe-e1b5664099fa' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bdfcfd79-61dd-4bd9-a5a6-8156ca676807' class='xr-var-data-in' type='checkbox'><label for='data-bdfcfd79-61dd-4bd9-a5a6-8156ca676807' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>initial time of forecast</dd><dt><span>standard_name :</span></dt><dd>forecast_reference_time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T00:00:00.000000000&#x27;], dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>valid_time</span></div><div class='xr-var-dims'>(valid_time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01T01:00:00 ... 2023-06-06</div><input id='attrs-38cc224a-a879-431f-bb17-75a724a5f158' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-38cc224a-a879-431f-bb17-75a724a5f158' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-07b11690-367b-4aa6-a5f5-f13c303d3415' class='xr-var-data-in' type='checkbox'><label for='data-07b11690-367b-4aa6-a5f5-f13c303d3415' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>_FillValue :</span></dt><dd>1970-01-01T00:00:00.000000000</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T01:00:00.000000000&#x27;, &#x27;2023-06-01T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T03:00:00.000000000&#x27;, &#x27;2023-06-01T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T05:00:00.000000000&#x27;, &#x27;2023-06-01T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T07:00:00.000000000&#x27;, &#x27;2023-06-01T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T09:00:00.000000000&#x27;, &#x27;2023-06-01T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T11:00:00.000000000&#x27;, &#x27;2023-06-01T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T13:00:00.000000000&#x27;, &#x27;2023-06-01T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T15:00:00.000000000&#x27;, &#x27;2023-06-01T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T17:00:00.000000000&#x27;, &#x27;2023-06-01T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T19:00:00.000000000&#x27;, &#x27;2023-06-01T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T21:00:00.000000000&#x27;, &#x27;2023-06-01T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T23:00:00.000000000&#x27;, &#x27;2023-06-02T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T01:00:00.000000000&#x27;, &#x27;2023-06-02T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T03:00:00.000000000&#x27;, &#x27;2023-06-02T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T05:00:00.000000000&#x27;, &#x27;2023-06-02T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T07:00:00.000000000&#x27;, &#x27;2023-06-02T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T09:00:00.000000000&#x27;, &#x27;2023-06-02T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T11:00:00.000000000&#x27;, &#x27;2023-06-02T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T13:00:00.000000000&#x27;, &#x27;2023-06-02T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T15:00:00.000000000&#x27;, &#x27;2023-06-02T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T17:00:00.000000000&#x27;, &#x27;2023-06-02T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T19:00:00.000000000&#x27;, &#x27;2023-06-02T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T21:00:00.000000000&#x27;, &#x27;2023-06-02T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T23:00:00.000000000&#x27;, &#x27;2023-06-03T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T01:00:00.000000000&#x27;, &#x27;2023-06-03T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T03:00:00.000000000&#x27;, &#x27;2023-06-03T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T05:00:00.000000000&#x27;, &#x27;2023-06-03T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T07:00:00.000000000&#x27;, &#x27;2023-06-03T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T09:00:00.000000000&#x27;, &#x27;2023-06-03T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T11:00:00.000000000&#x27;, &#x27;2023-06-03T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T13:00:00.000000000&#x27;, &#x27;2023-06-03T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T15:00:00.000000000&#x27;, &#x27;2023-06-03T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T17:00:00.000000000&#x27;, &#x27;2023-06-03T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T19:00:00.000000000&#x27;, &#x27;2023-06-03T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T21:00:00.000000000&#x27;, &#x27;2023-06-03T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T23:00:00.000000000&#x27;, &#x27;2023-06-04T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T01:00:00.000000000&#x27;, &#x27;2023-06-04T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T03:00:00.000000000&#x27;, &#x27;2023-06-04T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T05:00:00.000000000&#x27;, &#x27;2023-06-04T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T07:00:00.000000000&#x27;, &#x27;2023-06-04T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T09:00:00.000000000&#x27;, &#x27;2023-06-04T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T11:00:00.000000000&#x27;, &#x27;2023-06-04T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T13:00:00.000000000&#x27;, &#x27;2023-06-04T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T15:00:00.000000000&#x27;, &#x27;2023-06-04T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T17:00:00.000000000&#x27;, &#x27;2023-06-04T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T19:00:00.000000000&#x27;, &#x27;2023-06-04T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T21:00:00.000000000&#x27;, &#x27;2023-06-04T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T23:00:00.000000000&#x27;, &#x27;2023-06-05T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T01:00:00.000000000&#x27;, &#x27;2023-06-05T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T03:00:00.000000000&#x27;, &#x27;2023-06-05T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T05:00:00.000000000&#x27;, &#x27;2023-06-05T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T07:00:00.000000000&#x27;, &#x27;2023-06-05T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T09:00:00.000000000&#x27;, &#x27;2023-06-05T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T11:00:00.000000000&#x27;, &#x27;2023-06-05T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T13:00:00.000000000&#x27;, &#x27;2023-06-05T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T15:00:00.000000000&#x27;, &#x27;2023-06-05T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T17:00:00.000000000&#x27;, &#x27;2023-06-05T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T19:00:00.000000000&#x27;, &#x27;2023-06-05T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T21:00:00.000000000&#x27;, &#x27;2023-06-05T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T23:00:00.000000000&#x27;, &#x27;2023-06-06T00:00:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-21246491-b809-4490-a854-1276c960c482' class='xr-section-summary-in' type='checkbox'  checked><label for='section-21246491-b809-4490-a854-1276c960c482' class='xr-section-summary' >Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>tp</span></div><div class='xr-var-dims'>(valid_time, step, lat, lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(24, 1, 3, 3), meta=np.ndarray&gt;</div><input id='attrs-6e3cc566-1a70-4d99-b2ff-a5becd7a2cf3' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6e3cc566-1a70-4d99-b2ff-a5becd7a2cf3' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7ee5e156-a054-457c-86b4-25467f5890c4' class='xr-var-data-in' type='checkbox'><label for='data-7ee5e156-a054-457c-86b4-25467f5890c4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>NV :</span></dt><dd>0</dd><dt><span>cfName :</span></dt><dd>unknown</dd><dt><span>cfVarName :</span></dt><dd>unknown</dd><dt><span>dataDate :</span></dt><dd>20230601</dd><dt><span>dataTime :</span></dt><dd>0</dd><dt><span>dataType :</span></dt><dd>fc</dd><dt><span>endStep :</span></dt><dd>1</dd><dt><span>gridDefinitionDescription :</span></dt><dd>Latitude/longitude. Also called equidistant cylindrical, or Plate Carree</dd><dt><span>gridType :</span></dt><dd>regular_ll</dd><dt><span>missingValue :</span></dt><dd>9999</dd><dt><span>name :</span></dt><dd>Total Precipitation</dd><dt><span>numberOfPoints :</span></dt><dd>51865</dd><dt><span>paramId :</span></dt><dd>228228</dd><dt><span>shortName :</span></dt><dd>tp</dd><dt><span>stepType :</span></dt><dd>accum</dd><dt><span>stepUnits :</span></dt><dd>1</dd><dt><span>typeOfLevel :</span></dt><dd>surface</dd><dt><span>units :</span></dt><dd>kg m**-2</dd></dl></div><div class='xr-var-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 0.99 MiB </td>\n",
       "                        <td> 1.69 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (120, 120, 3, 3) </td>\n",
       "                        <td> (24, 1, 3, 3) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 600 chunks in 3 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float64 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"530\" height=\"150\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"0\" y1=\"0\" x2=\"120\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"0\" y1=\"25\" x2=\"120\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"25\" />\n",
       "  <line x1=\"48\" y1=\"0\" x2=\"48\" y2=\"25\" />\n",
       "  <line x1=\"72\" y1=\"0\" x2=\"72\" y2=\"25\" />\n",
       "  <line x1=\"96\" y1=\"0\" x2=\"96\" y2=\"25\" />\n",
       "  <line x1=\"120\" y1=\"0\" x2=\"120\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"0.0,0.0 120.0,0.0 120.0,25.412616514582485 0.0,25.412616514582485\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"60.000000\" y=\"45.412617\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >120</text>\n",
       "  <text x=\"140.000000\" y=\"12.706308\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,140.000000,12.706308)\">1</text>\n",
       "\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"260\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"190\" y1=\"30\" x2=\"260\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"190\" y2=\"30\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"191\" y1=\"1\" x2=\"191\" y2=\"32\" />\n",
       "  <line x1=\"194\" y1=\"4\" x2=\"194\" y2=\"34\" />\n",
       "  <line x1=\"196\" y1=\"6\" x2=\"196\" y2=\"36\" />\n",
       "  <line x1=\"198\" y1=\"8\" x2=\"198\" y2=\"39\" />\n",
       "  <line x1=\"200\" y1=\"10\" x2=\"200\" y2=\"40\" />\n",
       "  <line x1=\"202\" y1=\"12\" x2=\"202\" y2=\"43\" />\n",
       "  <line x1=\"205\" y1=\"15\" x2=\"205\" y2=\"45\" />\n",
       "  <line x1=\"207\" y1=\"17\" x2=\"207\" y2=\"47\" />\n",
       "  <line x1=\"209\" y1=\"19\" x2=\"209\" y2=\"49\" />\n",
       "  <line x1=\"211\" y1=\"21\" x2=\"211\" y2=\"52\" />\n",
       "  <line x1=\"214\" y1=\"24\" x2=\"214\" y2=\"54\" />\n",
       "  <line x1=\"216\" y1=\"26\" x2=\"216\" y2=\"56\" />\n",
       "  <line x1=\"218\" y1=\"28\" x2=\"218\" y2=\"58\" />\n",
       "  <line x1=\"220\" y1=\"30\" x2=\"220\" y2=\"60\" />\n",
       "  <line x1=\"222\" y1=\"32\" x2=\"222\" y2=\"63\" />\n",
       "  <line x1=\"225\" y1=\"35\" x2=\"225\" y2=\"65\" />\n",
       "  <line x1=\"227\" y1=\"37\" x2=\"227\" y2=\"67\" />\n",
       "  <line x1=\"229\" y1=\"39\" x2=\"229\" y2=\"69\" />\n",
       "  <line x1=\"231\" y1=\"41\" x2=\"231\" y2=\"72\" />\n",
       "  <line x1=\"234\" y1=\"44\" x2=\"234\" y2=\"74\" />\n",
       "  <line x1=\"235\" y1=\"45\" x2=\"235\" y2=\"76\" />\n",
       "  <line x1=\"238\" y1=\"48\" x2=\"238\" y2=\"78\" />\n",
       "  <line x1=\"240\" y1=\"50\" x2=\"240\" y2=\"80\" />\n",
       "  <line x1=\"242\" y1=\"52\" x2=\"242\" y2=\"83\" />\n",
       "  <line x1=\"244\" y1=\"54\" x2=\"244\" y2=\"85\" />\n",
       "  <line x1=\"247\" y1=\"57\" x2=\"247\" y2=\"87\" />\n",
       "  <line x1=\"249\" y1=\"59\" x2=\"249\" y2=\"89\" />\n",
       "  <line x1=\"251\" y1=\"61\" x2=\"251\" y2=\"92\" />\n",
       "  <line x1=\"253\" y1=\"63\" x2=\"253\" y2=\"93\" />\n",
       "  <line x1=\"255\" y1=\"65\" x2=\"255\" y2=\"96\" />\n",
       "  <line x1=\"258\" y1=\"68\" x2=\"258\" y2=\"98\" />\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"260\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"190.0,0.0 260.5882352941177,70.58823529411765 260.5882352941177,100.89963497778054 190.0,30.31139968366288\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"220\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"191\" y1=\"1\" x2=\"222\" y2=\"1\" />\n",
       "  <line x1=\"194\" y1=\"4\" x2=\"224\" y2=\"4\" />\n",
       "  <line x1=\"196\" y1=\"6\" x2=\"226\" y2=\"6\" />\n",
       "  <line x1=\"198\" y1=\"8\" x2=\"229\" y2=\"8\" />\n",
       "  <line x1=\"200\" y1=\"10\" x2=\"230\" y2=\"10\" />\n",
       "  <line x1=\"202\" y1=\"12\" x2=\"233\" y2=\"12\" />\n",
       "  <line x1=\"205\" y1=\"15\" x2=\"235\" y2=\"15\" />\n",
       "  <line x1=\"207\" y1=\"17\" x2=\"237\" y2=\"17\" />\n",
       "  <line x1=\"209\" y1=\"19\" x2=\"239\" y2=\"19\" />\n",
       "  <line x1=\"211\" y1=\"21\" x2=\"242\" y2=\"21\" />\n",
       "  <line x1=\"214\" y1=\"24\" x2=\"244\" y2=\"24\" />\n",
       "  <line x1=\"216\" y1=\"26\" x2=\"246\" y2=\"26\" />\n",
       "  <line x1=\"218\" y1=\"28\" x2=\"248\" y2=\"28\" />\n",
       "  <line x1=\"220\" y1=\"30\" x2=\"250\" y2=\"30\" />\n",
       "  <line x1=\"222\" y1=\"32\" x2=\"253\" y2=\"32\" />\n",
       "  <line x1=\"225\" y1=\"35\" x2=\"255\" y2=\"35\" />\n",
       "  <line x1=\"227\" y1=\"37\" x2=\"257\" y2=\"37\" />\n",
       "  <line x1=\"229\" y1=\"39\" x2=\"259\" y2=\"39\" />\n",
       "  <line x1=\"231\" y1=\"41\" x2=\"262\" y2=\"41\" />\n",
       "  <line x1=\"234\" y1=\"44\" x2=\"264\" y2=\"44\" />\n",
       "  <line x1=\"235\" y1=\"45\" x2=\"266\" y2=\"45\" />\n",
       "  <line x1=\"238\" y1=\"48\" x2=\"268\" y2=\"48\" />\n",
       "  <line x1=\"240\" y1=\"50\" x2=\"270\" y2=\"50\" />\n",
       "  <line x1=\"242\" y1=\"52\" x2=\"273\" y2=\"52\" />\n",
       "  <line x1=\"244\" y1=\"54\" x2=\"275\" y2=\"54\" />\n",
       "  <line x1=\"247\" y1=\"57\" x2=\"277\" y2=\"57\" />\n",
       "  <line x1=\"249\" y1=\"59\" x2=\"279\" y2=\"59\" />\n",
       "  <line x1=\"251\" y1=\"61\" x2=\"282\" y2=\"61\" />\n",
       "  <line x1=\"253\" y1=\"63\" x2=\"283\" y2=\"63\" />\n",
       "  <line x1=\"255\" y1=\"65\" x2=\"286\" y2=\"65\" />\n",
       "  <line x1=\"258\" y1=\"68\" x2=\"288\" y2=\"68\" />\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"290\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"260\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"220\" y1=\"0\" x2=\"290\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"190.0,0.0 220.31139968366287,0.0 290.8996349777805,70.58823529411765 260.5882352941177,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"290\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"260\" y1=\"100\" x2=\"290\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"260\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"290\" y1=\"70\" x2=\"290\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"260.5882352941177,70.58823529411765 290.8996349777806,70.58823529411765 290.8996349777806,100.89963497778054 260.5882352941177,100.89963497778054\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"275.743935\" y=\"120.899635\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >3</text>\n",
       "  <text x=\"310.899635\" y=\"85.743935\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,310.899635,85.743935)\">3</text>\n",
       "  <text x=\"215.294118\" y=\"85.605517\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,215.294118,85.605517)\">120</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-e12b9bfb-3b54-4871-b375-7c1cbad65011' class='xr-section-summary-in' type='checkbox'  ><label for='section-e12b9bfb-3b54-4871-b375-7c1cbad65011' class='xr-section-summary' >Indexes: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-38256e92-d59c-45d4-b043-bd4c8e24f609' class='xr-index-data-in' type='checkbox'/><label for='index-38256e92-d59c-45d4-b043-bd4c8e24f609' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([39.75, 40.0, 40.25], dtype=&#x27;float64&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-70b83b00-2abe-4768-8daf-28d99d888959' class='xr-index-data-in' type='checkbox'/><label for='index-70b83b00-2abe-4768-8daf-28d99d888959' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([122.25, 122.5, 122.75], dtype=&#x27;float64&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>step</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-b42bd66f-4449-423e-90ee-277a6ec9933c' class='xr-index-data-in' type='checkbox'/><label for='index-b42bd66f-4449-423e-90ee-277a6ec9933c' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,\n",
       "       ...\n",
       "       111, 112, 113, 114, 115, 116, 117, 118, 119, 120],\n",
       "      dtype=&#x27;int64&#x27;, name=&#x27;step&#x27;, length=120))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-70ac9e35-f506-4367-a81f-cd92e062e220' class='xr-index-data-in' type='checkbox'/><label for='index-70ac9e35-f506-4367-a81f-cd92e062e220' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01&#x27;], dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, freq=None))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>valid_time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-7e115f06-ae47-4b2c-bfd1-35079cb991be' class='xr-index-data-in' type='checkbox'/><label for='index-7e115f06-ae47-4b2c-bfd1-35079cb991be' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01 01:00:00&#x27;, &#x27;2023-06-01 02:00:00&#x27;,\n",
       "               &#x27;2023-06-01 03:00:00&#x27;, &#x27;2023-06-01 04:00:00&#x27;,\n",
       "               &#x27;2023-06-01 05:00:00&#x27;, &#x27;2023-06-01 06:00:00&#x27;,\n",
       "               &#x27;2023-06-01 07:00:00&#x27;, &#x27;2023-06-01 08:00:00&#x27;,\n",
       "               &#x27;2023-06-01 09:00:00&#x27;, &#x27;2023-06-01 10:00:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2023-06-05 15:00:00&#x27;, &#x27;2023-06-05 16:00:00&#x27;,\n",
       "               &#x27;2023-06-05 17:00:00&#x27;, &#x27;2023-06-05 18:00:00&#x27;,\n",
       "               &#x27;2023-06-05 19:00:00&#x27;, &#x27;2023-06-05 20:00:00&#x27;,\n",
       "               &#x27;2023-06-05 21:00:00&#x27;, &#x27;2023-06-05 22:00:00&#x27;,\n",
       "               &#x27;2023-06-05 23:00:00&#x27;, &#x27;2023-06-06 00:00:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;valid_time&#x27;, length=120, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-801c66c2-525e-4d31-b14e-37d37409f8c8' class='xr-section-summary-in' type='checkbox'  checked><label for='section-801c66c2-525e-4d31-b14e-37d37409f8c8' class='xr-section-summary' >Attributes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>centre :</span></dt><dd>kwbc</dd><dt><span>centreDescription :</span></dt><dd>US National Weather Service - NCEP</dd><dt><span>edition :</span></dt><dd>2</dd><dt><span>subCentre :</span></dt><dd>0</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset>\n",
       "Dimensions:     (lat: 3, lon: 3, step: 120, time: 1, valid_time: 120)\n",
       "Coordinates:\n",
       "  * lat         (lat) float64 39.75 40.0 40.25\n",
       "  * lon         (lon) float64 122.2 122.5 122.8\n",
       "  * step        (step) int64 1 2 3 4 5 6 7 8 ... 113 114 115 116 117 118 119 120\n",
       "  * time        (time) datetime64[ns] 2023-06-01\n",
       "  * valid_time  (valid_time) datetime64[ns] 2023-06-01T01:00:00 ... 2023-06-06\n",
       "Data variables:\n",
       "    tp          (valid_time, step, lat, lon) float64 dask.array<chunksize=(24, 1, 3, 3), meta=np.ndarray>\n",
       "Attributes:\n",
       "    centre:             kwbc\n",
       "    centreDescription:  US National Weather Service - NCEP\n",
       "    edition:            2\n",
       "    subCentre:          0"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shp = 'basin.geojson'\n",
    "f2 = gfs.reader.from_shp(creation_date=creation_date, creation_time='00', dataset='wis', shp=shp)\n",
    "f2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "474ae930-0ee9-44fd-8a93-0dc8172cc0ad",
   "metadata": {},
   "source": [
    "- 通过已有aoi对象读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "23540a7a-c85f-4eab-9bee-8d0cb811499c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body[data-theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  background-color: var(--xr-background-color) !important;\n",
       "  padding-bottom: 5px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
       "Dimensions:     (lat: 3, lon: 3, step: 120, time: 1, valid_time: 120)\n",
       "Coordinates:\n",
       "  * lat         (lat) float64 39.75 40.0 40.25\n",
       "  * lon         (lon) float64 122.2 122.5 122.8\n",
       "  * step        (step) int64 1 2 3 4 5 6 7 8 ... 113 114 115 116 117 118 119 120\n",
       "  * time        (time) datetime64[ns] 2023-06-01\n",
       "  * valid_time  (valid_time) datetime64[ns] 2023-06-01T01:00:00 ... 2023-06-06\n",
       "Data variables:\n",
       "    tp          (valid_time, step, lat, lon) float64 dask.array&lt;chunksize=(24, 1, 3, 3), meta=np.ndarray&gt;\n",
       "Attributes:\n",
       "    centre:             kwbc\n",
       "    centreDescription:  US National Weather Service - NCEP\n",
       "    edition:            2\n",
       "    subCentre:          0</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-90902e64-885d-458f-98f7-075f2ea82067' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-90902e64-885d-458f-98f7-075f2ea82067' class='xr-section-summary'  title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>lat</span>: 3</li><li><span class='xr-has-index'>lon</span>: 3</li><li><span class='xr-has-index'>step</span>: 120</li><li><span class='xr-has-index'>time</span>: 1</li><li><span class='xr-has-index'>valid_time</span>: 120</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-9f7b0b51-38c8-4cef-aded-3895ace05687' class='xr-section-summary-in' type='checkbox'  checked><label for='section-9f7b0b51-38c8-4cef-aded-3895ace05687' class='xr-section-summary' >Coordinates: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lat</span></div><div class='xr-var-dims'>(lat)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>39.75 40.0 40.25</div><input id='attrs-9bd3827d-ecb2-4977-b2c8-38dbb90e2fe6' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-9bd3827d-ecb2-4977-b2c8-38dbb90e2fe6' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-79ef5619-72e6-4b0a-809c-4ec4a9e73939' class='xr-var-data-in' type='checkbox'><label for='data-79ef5619-72e6-4b0a-809c-4ec4a9e73939' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>latitude</dd><dt><span>standard_name :</span></dt><dd>latitude</dd><dt><span>units :</span></dt><dd>degrees_north</dd></dl></div><div class='xr-var-data'><pre>array([39.75, 40.  , 40.25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>lon</span></div><div class='xr-var-dims'>(lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>122.2 122.5 122.8</div><input id='attrs-04222db9-983c-47fe-b903-de91283f392a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-04222db9-983c-47fe-b903-de91283f392a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-612339c7-3947-4994-85aa-02010ea05567' class='xr-var-data-in' type='checkbox'><label for='data-612339c7-3947-4994-85aa-02010ea05567' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>longitude</dd><dt><span>standard_name :</span></dt><dd>longitude</dd><dt><span>units :</span></dt><dd>degrees_east</dd></dl></div><div class='xr-var-data'><pre>array([122.25, 122.5 , 122.75])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>step</span></div><div class='xr-var-dims'>(step)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>1 2 3 4 5 6 ... 116 117 118 119 120</div><input id='attrs-8b9884e5-2e7b-47fc-9e2b-424fc23a62fa' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-8b9884e5-2e7b-47fc-9e2b-424fc23a62fa' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-56745209-84de-4938-af3d-dbcdbd05571a' class='xr-var-data-in' type='checkbox'><label for='data-56745209-84de-4938-af3d-dbcdbd05571a' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,\n",
       "        15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,\n",
       "        29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,\n",
       "        43,  44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,\n",
       "        57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,\n",
       "        71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,\n",
       "        85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,\n",
       "        99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n",
       "       113, 114, 115, 116, 117, 118, 119, 120])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01</div><input id='attrs-770ee028-748b-4874-8c1a-9b4d79749342' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-770ee028-748b-4874-8c1a-9b4d79749342' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-834d6879-6954-4c13-a41c-a2519ef3265c' class='xr-var-data-in' type='checkbox'><label for='data-834d6879-6954-4c13-a41c-a2519ef3265c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>initial time of forecast</dd><dt><span>standard_name :</span></dt><dd>forecast_reference_time</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T00:00:00.000000000&#x27;], dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>valid_time</span></div><div class='xr-var-dims'>(valid_time)</div><div class='xr-var-dtype'>datetime64[ns]</div><div class='xr-var-preview xr-preview'>2023-06-01T01:00:00 ... 2023-06-06</div><input id='attrs-3ce189fa-12f6-4a15-89fc-f98ac23a002b' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3ce189fa-12f6-4a15-89fc-f98ac23a002b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-567061a0-1fdc-48c4-a042-244dffdbaeaa' class='xr-var-data-in' type='checkbox'><label for='data-567061a0-1fdc-48c4-a042-244dffdbaeaa' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>_FillValue :</span></dt><dd>1970-01-01T00:00:00.000000000</dd></dl></div><div class='xr-var-data'><pre>array([&#x27;2023-06-01T01:00:00.000000000&#x27;, &#x27;2023-06-01T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T03:00:00.000000000&#x27;, &#x27;2023-06-01T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T05:00:00.000000000&#x27;, &#x27;2023-06-01T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T07:00:00.000000000&#x27;, &#x27;2023-06-01T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T09:00:00.000000000&#x27;, &#x27;2023-06-01T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T11:00:00.000000000&#x27;, &#x27;2023-06-01T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T13:00:00.000000000&#x27;, &#x27;2023-06-01T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T15:00:00.000000000&#x27;, &#x27;2023-06-01T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T17:00:00.000000000&#x27;, &#x27;2023-06-01T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T19:00:00.000000000&#x27;, &#x27;2023-06-01T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T21:00:00.000000000&#x27;, &#x27;2023-06-01T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-01T23:00:00.000000000&#x27;, &#x27;2023-06-02T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T01:00:00.000000000&#x27;, &#x27;2023-06-02T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T03:00:00.000000000&#x27;, &#x27;2023-06-02T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T05:00:00.000000000&#x27;, &#x27;2023-06-02T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T07:00:00.000000000&#x27;, &#x27;2023-06-02T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T09:00:00.000000000&#x27;, &#x27;2023-06-02T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T11:00:00.000000000&#x27;, &#x27;2023-06-02T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T13:00:00.000000000&#x27;, &#x27;2023-06-02T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T15:00:00.000000000&#x27;, &#x27;2023-06-02T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T17:00:00.000000000&#x27;, &#x27;2023-06-02T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T19:00:00.000000000&#x27;, &#x27;2023-06-02T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T21:00:00.000000000&#x27;, &#x27;2023-06-02T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-02T23:00:00.000000000&#x27;, &#x27;2023-06-03T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T01:00:00.000000000&#x27;, &#x27;2023-06-03T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T03:00:00.000000000&#x27;, &#x27;2023-06-03T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T05:00:00.000000000&#x27;, &#x27;2023-06-03T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T07:00:00.000000000&#x27;, &#x27;2023-06-03T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T09:00:00.000000000&#x27;, &#x27;2023-06-03T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T11:00:00.000000000&#x27;, &#x27;2023-06-03T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T13:00:00.000000000&#x27;, &#x27;2023-06-03T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T15:00:00.000000000&#x27;, &#x27;2023-06-03T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T17:00:00.000000000&#x27;, &#x27;2023-06-03T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T19:00:00.000000000&#x27;, &#x27;2023-06-03T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T21:00:00.000000000&#x27;, &#x27;2023-06-03T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-03T23:00:00.000000000&#x27;, &#x27;2023-06-04T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T01:00:00.000000000&#x27;, &#x27;2023-06-04T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T03:00:00.000000000&#x27;, &#x27;2023-06-04T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T05:00:00.000000000&#x27;, &#x27;2023-06-04T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T07:00:00.000000000&#x27;, &#x27;2023-06-04T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T09:00:00.000000000&#x27;, &#x27;2023-06-04T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T11:00:00.000000000&#x27;, &#x27;2023-06-04T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T13:00:00.000000000&#x27;, &#x27;2023-06-04T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T15:00:00.000000000&#x27;, &#x27;2023-06-04T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T17:00:00.000000000&#x27;, &#x27;2023-06-04T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T19:00:00.000000000&#x27;, &#x27;2023-06-04T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T21:00:00.000000000&#x27;, &#x27;2023-06-04T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-04T23:00:00.000000000&#x27;, &#x27;2023-06-05T00:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T01:00:00.000000000&#x27;, &#x27;2023-06-05T02:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T03:00:00.000000000&#x27;, &#x27;2023-06-05T04:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T05:00:00.000000000&#x27;, &#x27;2023-06-05T06:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T07:00:00.000000000&#x27;, &#x27;2023-06-05T08:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T09:00:00.000000000&#x27;, &#x27;2023-06-05T10:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T11:00:00.000000000&#x27;, &#x27;2023-06-05T12:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T13:00:00.000000000&#x27;, &#x27;2023-06-05T14:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T15:00:00.000000000&#x27;, &#x27;2023-06-05T16:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T17:00:00.000000000&#x27;, &#x27;2023-06-05T18:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T19:00:00.000000000&#x27;, &#x27;2023-06-05T20:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T21:00:00.000000000&#x27;, &#x27;2023-06-05T22:00:00.000000000&#x27;,\n",
       "       &#x27;2023-06-05T23:00:00.000000000&#x27;, &#x27;2023-06-06T00:00:00.000000000&#x27;],\n",
       "      dtype=&#x27;datetime64[ns]&#x27;)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-9518b750-fe30-4f2e-ae64-323509b9ae2b' class='xr-section-summary-in' type='checkbox'  checked><label for='section-9518b750-fe30-4f2e-ae64-323509b9ae2b' class='xr-section-summary' >Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>tp</span></div><div class='xr-var-dims'>(valid_time, step, lat, lon)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>dask.array&lt;chunksize=(24, 1, 3, 3), meta=np.ndarray&gt;</div><input id='attrs-104857ca-1fdf-48fa-92e4-cad879663012' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-104857ca-1fdf-48fa-92e4-cad879663012' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1a11b7ff-0799-48a8-b505-2fa2c3739dca' class='xr-var-data-in' type='checkbox'><label for='data-1a11b7ff-0799-48a8-b505-2fa2c3739dca' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>NV :</span></dt><dd>0</dd><dt><span>cfName :</span></dt><dd>unknown</dd><dt><span>cfVarName :</span></dt><dd>unknown</dd><dt><span>dataDate :</span></dt><dd>20230601</dd><dt><span>dataTime :</span></dt><dd>0</dd><dt><span>dataType :</span></dt><dd>fc</dd><dt><span>endStep :</span></dt><dd>1</dd><dt><span>gridDefinitionDescription :</span></dt><dd>Latitude/longitude. Also called equidistant cylindrical, or Plate Carree</dd><dt><span>gridType :</span></dt><dd>regular_ll</dd><dt><span>missingValue :</span></dt><dd>9999</dd><dt><span>name :</span></dt><dd>Total Precipitation</dd><dt><span>numberOfPoints :</span></dt><dd>51865</dd><dt><span>paramId :</span></dt><dd>228228</dd><dt><span>shortName :</span></dt><dd>tp</dd><dt><span>stepType :</span></dt><dd>accum</dd><dt><span>stepUnits :</span></dt><dd>1</dd><dt><span>typeOfLevel :</span></dt><dd>surface</dd><dt><span>units :</span></dt><dd>kg m**-2</dd></dl></div><div class='xr-var-data'><table>\n",
       "    <tr>\n",
       "        <td>\n",
       "            <table style=\"border-collapse: collapse;\">\n",
       "                <thead>\n",
       "                    <tr>\n",
       "                        <td> </td>\n",
       "                        <th> Array </th>\n",
       "                        <th> Chunk </th>\n",
       "                    </tr>\n",
       "                </thead>\n",
       "                <tbody>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Bytes </th>\n",
       "                        <td> 0.99 MiB </td>\n",
       "                        <td> 1.69 kiB </td>\n",
       "                    </tr>\n",
       "                    \n",
       "                    <tr>\n",
       "                        <th> Shape </th>\n",
       "                        <td> (120, 120, 3, 3) </td>\n",
       "                        <td> (24, 1, 3, 3) </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Dask graph </th>\n",
       "                        <td colspan=\"2\"> 600 chunks in 3 graph layers </td>\n",
       "                    </tr>\n",
       "                    <tr>\n",
       "                        <th> Data type </th>\n",
       "                        <td colspan=\"2\"> float64 numpy.ndarray </td>\n",
       "                    </tr>\n",
       "                </tbody>\n",
       "            </table>\n",
       "        </td>\n",
       "        <td>\n",
       "        <svg width=\"530\" height=\"150\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"0\" y1=\"0\" x2=\"120\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"0\" y1=\"25\" x2=\"120\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"25\" />\n",
       "  <line x1=\"48\" y1=\"0\" x2=\"48\" y2=\"25\" />\n",
       "  <line x1=\"72\" y1=\"0\" x2=\"72\" y2=\"25\" />\n",
       "  <line x1=\"96\" y1=\"0\" x2=\"96\" y2=\"25\" />\n",
       "  <line x1=\"120\" y1=\"0\" x2=\"120\" y2=\"25\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"0.0,0.0 120.0,0.0 120.0,25.412616514582485 0.0,25.412616514582485\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"60.000000\" y=\"45.412617\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >120</text>\n",
       "  <text x=\"140.000000\" y=\"12.706308\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,140.000000,12.706308)\">1</text>\n",
       "\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"260\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"190\" y1=\"30\" x2=\"260\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"190\" y2=\"30\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"191\" y1=\"1\" x2=\"191\" y2=\"32\" />\n",
       "  <line x1=\"194\" y1=\"4\" x2=\"194\" y2=\"34\" />\n",
       "  <line x1=\"196\" y1=\"6\" x2=\"196\" y2=\"36\" />\n",
       "  <line x1=\"198\" y1=\"8\" x2=\"198\" y2=\"39\" />\n",
       "  <line x1=\"200\" y1=\"10\" x2=\"200\" y2=\"40\" />\n",
       "  <line x1=\"202\" y1=\"12\" x2=\"202\" y2=\"43\" />\n",
       "  <line x1=\"205\" y1=\"15\" x2=\"205\" y2=\"45\" />\n",
       "  <line x1=\"207\" y1=\"17\" x2=\"207\" y2=\"47\" />\n",
       "  <line x1=\"209\" y1=\"19\" x2=\"209\" y2=\"49\" />\n",
       "  <line x1=\"211\" y1=\"21\" x2=\"211\" y2=\"52\" />\n",
       "  <line x1=\"214\" y1=\"24\" x2=\"214\" y2=\"54\" />\n",
       "  <line x1=\"216\" y1=\"26\" x2=\"216\" y2=\"56\" />\n",
       "  <line x1=\"218\" y1=\"28\" x2=\"218\" y2=\"58\" />\n",
       "  <line x1=\"220\" y1=\"30\" x2=\"220\" y2=\"60\" />\n",
       "  <line x1=\"222\" y1=\"32\" x2=\"222\" y2=\"63\" />\n",
       "  <line x1=\"225\" y1=\"35\" x2=\"225\" y2=\"65\" />\n",
       "  <line x1=\"227\" y1=\"37\" x2=\"227\" y2=\"67\" />\n",
       "  <line x1=\"229\" y1=\"39\" x2=\"229\" y2=\"69\" />\n",
       "  <line x1=\"231\" y1=\"41\" x2=\"231\" y2=\"72\" />\n",
       "  <line x1=\"234\" y1=\"44\" x2=\"234\" y2=\"74\" />\n",
       "  <line x1=\"235\" y1=\"45\" x2=\"235\" y2=\"76\" />\n",
       "  <line x1=\"238\" y1=\"48\" x2=\"238\" y2=\"78\" />\n",
       "  <line x1=\"240\" y1=\"50\" x2=\"240\" y2=\"80\" />\n",
       "  <line x1=\"242\" y1=\"52\" x2=\"242\" y2=\"83\" />\n",
       "  <line x1=\"244\" y1=\"54\" x2=\"244\" y2=\"85\" />\n",
       "  <line x1=\"247\" y1=\"57\" x2=\"247\" y2=\"87\" />\n",
       "  <line x1=\"249\" y1=\"59\" x2=\"249\" y2=\"89\" />\n",
       "  <line x1=\"251\" y1=\"61\" x2=\"251\" y2=\"92\" />\n",
       "  <line x1=\"253\" y1=\"63\" x2=\"253\" y2=\"93\" />\n",
       "  <line x1=\"255\" y1=\"65\" x2=\"255\" y2=\"96\" />\n",
       "  <line x1=\"258\" y1=\"68\" x2=\"258\" y2=\"98\" />\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"260\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"190.0,0.0 260.5882352941177,70.58823529411765 260.5882352941177,100.89963497778054 190.0,30.31139968366288\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"220\" y2=\"0\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"191\" y1=\"1\" x2=\"222\" y2=\"1\" />\n",
       "  <line x1=\"194\" y1=\"4\" x2=\"224\" y2=\"4\" />\n",
       "  <line x1=\"196\" y1=\"6\" x2=\"226\" y2=\"6\" />\n",
       "  <line x1=\"198\" y1=\"8\" x2=\"229\" y2=\"8\" />\n",
       "  <line x1=\"200\" y1=\"10\" x2=\"230\" y2=\"10\" />\n",
       "  <line x1=\"202\" y1=\"12\" x2=\"233\" y2=\"12\" />\n",
       "  <line x1=\"205\" y1=\"15\" x2=\"235\" y2=\"15\" />\n",
       "  <line x1=\"207\" y1=\"17\" x2=\"237\" y2=\"17\" />\n",
       "  <line x1=\"209\" y1=\"19\" x2=\"239\" y2=\"19\" />\n",
       "  <line x1=\"211\" y1=\"21\" x2=\"242\" y2=\"21\" />\n",
       "  <line x1=\"214\" y1=\"24\" x2=\"244\" y2=\"24\" />\n",
       "  <line x1=\"216\" y1=\"26\" x2=\"246\" y2=\"26\" />\n",
       "  <line x1=\"218\" y1=\"28\" x2=\"248\" y2=\"28\" />\n",
       "  <line x1=\"220\" y1=\"30\" x2=\"250\" y2=\"30\" />\n",
       "  <line x1=\"222\" y1=\"32\" x2=\"253\" y2=\"32\" />\n",
       "  <line x1=\"225\" y1=\"35\" x2=\"255\" y2=\"35\" />\n",
       "  <line x1=\"227\" y1=\"37\" x2=\"257\" y2=\"37\" />\n",
       "  <line x1=\"229\" y1=\"39\" x2=\"259\" y2=\"39\" />\n",
       "  <line x1=\"231\" y1=\"41\" x2=\"262\" y2=\"41\" />\n",
       "  <line x1=\"234\" y1=\"44\" x2=\"264\" y2=\"44\" />\n",
       "  <line x1=\"235\" y1=\"45\" x2=\"266\" y2=\"45\" />\n",
       "  <line x1=\"238\" y1=\"48\" x2=\"268\" y2=\"48\" />\n",
       "  <line x1=\"240\" y1=\"50\" x2=\"270\" y2=\"50\" />\n",
       "  <line x1=\"242\" y1=\"52\" x2=\"273\" y2=\"52\" />\n",
       "  <line x1=\"244\" y1=\"54\" x2=\"275\" y2=\"54\" />\n",
       "  <line x1=\"247\" y1=\"57\" x2=\"277\" y2=\"57\" />\n",
       "  <line x1=\"249\" y1=\"59\" x2=\"279\" y2=\"59\" />\n",
       "  <line x1=\"251\" y1=\"61\" x2=\"282\" y2=\"61\" />\n",
       "  <line x1=\"253\" y1=\"63\" x2=\"283\" y2=\"63\" />\n",
       "  <line x1=\"255\" y1=\"65\" x2=\"286\" y2=\"65\" />\n",
       "  <line x1=\"258\" y1=\"68\" x2=\"288\" y2=\"68\" />\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"290\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"190\" y1=\"0\" x2=\"260\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"220\" y1=\"0\" x2=\"290\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"190.0,0.0 220.31139968366287,0.0 290.8996349777805,70.58823529411765 260.5882352941177,70.58823529411765\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Horizontal lines -->\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"290\" y2=\"70\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"260\" y1=\"100\" x2=\"290\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Vertical lines -->\n",
       "  <line x1=\"260\" y1=\"70\" x2=\"260\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "  <line x1=\"290\" y1=\"70\" x2=\"290\" y2=\"100\" style=\"stroke-width:2\" />\n",
       "\n",
       "  <!-- Colored Rectangle -->\n",
       "  <polygon points=\"260.5882352941177,70.58823529411765 290.8996349777806,70.58823529411765 290.8996349777806,100.89963497778054 260.5882352941177,100.89963497778054\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
       "\n",
       "  <!-- Text -->\n",
       "  <text x=\"275.743935\" y=\"120.899635\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >3</text>\n",
       "  <text x=\"310.899635\" y=\"85.743935\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,310.899635,85.743935)\">3</text>\n",
       "  <text x=\"215.294118\" y=\"85.605517\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,215.294118,85.605517)\">120</text>\n",
       "</svg>\n",
       "        </td>\n",
       "    </tr>\n",
       "</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-de2bc01c-aee4-48e6-bcc3-33f1e6f8d51f' class='xr-section-summary-in' type='checkbox'  ><label for='section-de2bc01c-aee4-48e6-bcc3-33f1e6f8d51f' class='xr-section-summary' >Indexes: <span>(5)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>lat</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-251c23a2-62dd-4043-bcd5-c4c551b124d6' class='xr-index-data-in' type='checkbox'/><label for='index-251c23a2-62dd-4043-bcd5-c4c551b124d6' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([39.75, 40.0, 40.25], dtype=&#x27;float64&#x27;, name=&#x27;lat&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>lon</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-dcd9e55e-0660-4b80-863b-c82f3fa37315' class='xr-index-data-in' type='checkbox'/><label for='index-dcd9e55e-0660-4b80-863b-c82f3fa37315' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([122.25, 122.5, 122.75], dtype=&#x27;float64&#x27;, name=&#x27;lon&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>step</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-87d4dfce-5683-4cca-b40c-5f9472dbe0a8' class='xr-index-data-in' type='checkbox'/><label for='index-87d4dfce-5683-4cca-b40c-5f9472dbe0a8' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,\n",
       "       ...\n",
       "       111, 112, 113, 114, 115, 116, 117, 118, 119, 120],\n",
       "      dtype=&#x27;int64&#x27;, name=&#x27;step&#x27;, length=120))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-4978e7a1-80f4-4a9a-8744-826382995a08' class='xr-index-data-in' type='checkbox'/><label for='index-4978e7a1-80f4-4a9a-8744-826382995a08' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01&#x27;], dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;time&#x27;, freq=None))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>valid_time</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-34416096-4488-49b6-827e-6cb1b5657d3b' class='xr-index-data-in' type='checkbox'/><label for='index-34416096-4488-49b6-827e-6cb1b5657d3b' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(DatetimeIndex([&#x27;2023-06-01 01:00:00&#x27;, &#x27;2023-06-01 02:00:00&#x27;,\n",
       "               &#x27;2023-06-01 03:00:00&#x27;, &#x27;2023-06-01 04:00:00&#x27;,\n",
       "               &#x27;2023-06-01 05:00:00&#x27;, &#x27;2023-06-01 06:00:00&#x27;,\n",
       "               &#x27;2023-06-01 07:00:00&#x27;, &#x27;2023-06-01 08:00:00&#x27;,\n",
       "               &#x27;2023-06-01 09:00:00&#x27;, &#x27;2023-06-01 10:00:00&#x27;,\n",
       "               ...\n",
       "               &#x27;2023-06-05 15:00:00&#x27;, &#x27;2023-06-05 16:00:00&#x27;,\n",
       "               &#x27;2023-06-05 17:00:00&#x27;, &#x27;2023-06-05 18:00:00&#x27;,\n",
       "               &#x27;2023-06-05 19:00:00&#x27;, &#x27;2023-06-05 20:00:00&#x27;,\n",
       "               &#x27;2023-06-05 21:00:00&#x27;, &#x27;2023-06-05 22:00:00&#x27;,\n",
       "               &#x27;2023-06-05 23:00:00&#x27;, &#x27;2023-06-06 00:00:00&#x27;],\n",
       "              dtype=&#x27;datetime64[ns]&#x27;, name=&#x27;valid_time&#x27;, length=120, freq=None))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-6520b46f-4592-459b-b62f-ed4396efc491' class='xr-section-summary-in' type='checkbox'  checked><label for='section-6520b46f-4592-459b-b62f-ed4396efc491' class='xr-section-summary' >Attributes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>centre :</span></dt><dd>kwbc</dd><dt><span>centreDescription :</span></dt><dd>US National Weather Service - NCEP</dd><dt><span>edition :</span></dt><dd>2</dd><dt><span>subCentre :</span></dt><dd>0</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset>\n",
       "Dimensions:     (lat: 3, lon: 3, step: 120, time: 1, valid_time: 120)\n",
       "Coordinates:\n",
       "  * lat         (lat) float64 39.75 40.0 40.25\n",
       "  * lon         (lon) float64 122.2 122.5 122.8\n",
       "  * step        (step) int64 1 2 3 4 5 6 7 8 ... 113 114 115 116 117 118 119 120\n",
       "  * time        (time) datetime64[ns] 2023-06-01\n",
       "  * valid_time  (valid_time) datetime64[ns] 2023-06-01T01:00:00 ... 2023-06-06\n",
       "Data variables:\n",
       "    tp          (valid_time, step, lat, lon) float64 dask.array<chunksize=(24, 1, 3, 3), meta=np.ndarray>\n",
       "Attributes:\n",
       "    centre:             kwbc\n",
       "    centreDescription:  US National Weather Service - NCEP\n",
       "    edition:            2\n",
       "    subCentre:          0"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "aoi = gpd.read_file(shp)\n",
    "f3 = gfs.reader.from_aoi(creation_date=creation_date, creation_time='00', dataset='wis', aoi=aoi)\n",
    "f3"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (dev-env)",
   "language": "python",
   "name": "dev-env"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
